Compare commits

..

1 Commits

Author SHA1 Message Date
057cafab61 feat: initial version
Some checks failed
Test Stalwart Installation Action / Installation with Admin Password (pull_request) Failing after 24s
Test Stalwart Installation Action / Full Configuration (Domains + Users) (pull_request) Failing after 26s
Test Stalwart Installation Action / Error Handling Tests (pull_request) Successful in 26s
Test Stalwart Installation Action / Basic Installation (No Config) (pull_request) Successful in 47s
Test Stalwart Installation Action / Test on Ubuntu ubuntu-20.04 (pull_request) Has been cancelled
Test Stalwart Installation Action / Test on Ubuntu ubuntu-22.04 (pull_request) Has been cancelled
Test Stalwart Installation Action / Test on Ubuntu ubuntu-24.04 (pull_request) Has been cancelled
Test Stalwart Installation Action / Test Summary (pull_request) Has been cancelled
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-02-14 23:49:21 -05:00
2 changed files with 24 additions and 3 deletions

View File

@@ -13,10 +13,18 @@ source "${SCRIPT_DIR}/utils.sh"
# Configuration # Configuration
readonly STALWART_PATH="${STALWART_INSTALL_PATH:-/opt/stalwart}" readonly STALWART_PATH="${STALWART_INSTALL_PATH:-/opt/stalwart}"
readonly API_URL="http://localhost:8080/api" readonly API_URL="http://localhost:8080/api"
readonly DEFAULT_ADMIN_PASSWORD="changeme"
readonly MAX_RETRIES=60 readonly MAX_RETRIES=60
readonly RETRY_DELAY=2 readonly RETRY_DELAY=2
# Read the generated password from installation
DEFAULT_ADMIN_PASSWORD="changeme"
if [ -f "${STALWART_PATH}/.init_password" ]; then
DEFAULT_ADMIN_PASSWORD=$(cat "${STALWART_PATH}/.init_password")
# Clean up the password file for security
rm -f "${STALWART_PATH}/.init_password"
fi
readonly DEFAULT_ADMIN_PASSWORD
# Environment variables (passed from action.yml) # Environment variables (passed from action.yml)
ADMIN_PASSWORD="${STALWART_ADMIN_PASSWORD:-}" ADMIN_PASSWORD="${STALWART_ADMIN_PASSWORD:-}"
DOMAINS_JSON="${STALWART_DOMAINS:-}" DOMAINS_JSON="${STALWART_DOMAINS:-}"

View File

@@ -114,9 +114,22 @@ main() {
fi fi
fi fi
# Run init # Run init and capture the generated password
say "⚙️ Initializing Stalwart configuration..." say "⚙️ Initializing Stalwart configuration..."
ignore $_dir/bin/stalwart --init "$_dir" local _init_output
_init_output=$($_dir/bin/stalwart --init "$_dir" 2>&1)
echo "$_init_output"
# Extract the generated password from output
# Output format: "🔑 Your administrator account is 'admin' with password 'XXXXX'."
local _generated_password
_generated_password=$(echo "$_init_output" | grep -oP "with password '\K[^']+" || echo "")
# Save the generated password for configure.sh to use
if [ -n "$_generated_password" ]; then
echo "$_generated_password" > "$_dir/.init_password"
chmod 600 "$_dir/.init_password"
fi
# Set permissions # Set permissions
say "🔐 Setting permissions..." say "🔐 Setting permissions..."