Native binaries
Run Goiabada without Docker using pre-built binaries from the releases page.
Download
Section titled “Download”Download the ZIP for your platform from the releases page. Each ZIP contains both the auth server and admin console binaries:
| Platform | ZIP file | Contains |
|---|---|---|
| Linux (x64) | goiabada-VERSION-linux-amd64.zip | goiabada-authserver, goiabada-adminconsole |
| Linux (ARM) | goiabada-VERSION-linux-arm64.zip | goiabada-authserver, goiabada-adminconsole |
| macOS (Intel) | goiabada-VERSION-darwin-amd64.zip | goiabada-authserver, goiabada-adminconsole |
| macOS (Apple Silicon) | goiabada-VERSION-darwin-arm64.zip | goiabada-authserver, goiabada-adminconsole |
| Windows | goiabada-VERSION-windows-amd64.zip | goiabada-authserver.exe, goiabada-adminconsole.exe |
# Example for Linux amd64 - download from the releases page# https://github.com/leodip/goiabada/releasesunzip goiabada-VERSION-linux-amd64.zipchmod +x goiabada-authserver goiabada-adminconsolePrerequisites
Section titled “Prerequisites”- A database server (MySQL, PostgreSQL, SQL Server) or SQLite
- SSL certificates for HTTPS
- A reverse proxy (Nginx recommended) or direct HTTPS configuration
Configuration
Section titled “Configuration”Configure via environment variables. You can export them directly or use an environment file.
Auth server configuration
Section titled “Auth server configuration”# Admin user (created on first startup)export GOIABADA_ADMIN_PASSWORD="changeme"export GOIABADA_APPNAME="Goiabada"
# Server URLsexport GOIABADA_AUTHSERVER_BASEURL="https://auth.example.com"export GOIABADA_AUTHSERVER_INTERNALBASEURL="http://127.0.0.1:9090"
# Listener configurationexport GOIABADA_AUTHSERVER_LISTEN_HOST_HTTP="0.0.0.0"export GOIABADA_AUTHSERVER_LISTEN_PORT_HTTP="9090"
# Session keys (generate: openssl rand -hex 64 and openssl rand -hex 32)export GOIABADA_AUTHSERVER_SESSION_AUTHENTICATION_KEY="<64-byte-hex>"export GOIABADA_AUTHSERVER_SESSION_ENCRYPTION_KEY="<32-byte-hex>"
# Database (MySQL example)export GOIABADA_DB_TYPE="mysql"export GOIABADA_DB_USERNAME="goiabada"export GOIABADA_DB_PASSWORD="your-password"export GOIABADA_DB_HOST="localhost"export GOIABADA_DB_PORT="3306"export GOIABADA_DB_NAME="goiabada"
# Admin console URLsexport GOIABADA_ADMINCONSOLE_BASEURL="https://admin.example.com"
# OAuth client secret for seedingexport GOIABADA_ADMINCONSOLE_OAUTH_CLIENT_SECRET="<generated-secret>"Admin console configuration
Section titled “Admin console configuration”# Server URLsexport GOIABADA_ADMINCONSOLE_BASEURL="https://admin.example.com"
# Listener configurationexport GOIABADA_ADMINCONSOLE_LISTEN_HOST_HTTP="0.0.0.0"export GOIABADA_ADMINCONSOLE_LISTEN_PORT_HTTP="9091"
# OAuth credentialsexport GOIABADA_ADMINCONSOLE_OAUTH_CLIENT_ID="admin-console-client"export GOIABADA_ADMINCONSOLE_OAUTH_CLIENT_SECRET="<same-secret-as-above>"
# Session keysexport GOIABADA_ADMINCONSOLE_SESSION_AUTHENTICATION_KEY="<64-byte-hex>"export GOIABADA_ADMINCONSOLE_SESSION_ENCRYPTION_KEY="<32-byte-hex>"
# Auth server URLsexport GOIABADA_AUTHSERVER_BASEURL="https://auth.example.com"export GOIABADA_AUTHSERVER_INTERNALBASEURL="http://127.0.0.1:9090"Running on Linux with systemd
Section titled “Running on Linux with systemd”1. Create a dedicated user
Section titled “1. Create a dedicated user”sudo useradd -r -s /bin/false goiabadasudo mkdir -p /opt/goiabadasudo mkdir -p /etc/goiabadasudo mkdir -p /var/lib/goiabada
sudo mv goiabada-authserver goiabada-adminconsole /opt/goiabada/sudo chmod +x /opt/goiabada/goiabada-*sudo chown -R goiabada:goiabada /opt/goiabadasudo chown -R goiabada:goiabada /var/lib/goiabada2. Create environment files
Section titled “2. Create environment files”# Auth server environmentsudo nano /etc/goiabada/authserver.env
# Admin console environmentsudo nano /etc/goiabada/adminconsole.env3. Create systemd service files
Section titled “3. Create systemd service files”Auth server (/etc/systemd/system/goiabada-authserver.service):
[Unit]Description=Goiabada Auth ServerAfter=network.target mysql.service
[Service]Type=simpleUser=goiabadaGroup=goiabadaWorkingDirectory=/opt/goiabadaEnvironmentFile=/etc/goiabada/authserver.envExecStart=/opt/goiabada/goiabada-authserverRestart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.targetAdmin console (/etc/systemd/system/goiabada-adminconsole.service):
[Unit]Description=Goiabada Admin ConsoleAfter=network.target goiabada-authserver.serviceRequires=goiabada-authserver.service
[Service]Type=simpleUser=goiabadaGroup=goiabadaWorkingDirectory=/opt/goiabadaEnvironmentFile=/etc/goiabada/adminconsole.envExecStart=/opt/goiabada/goiabada-adminconsoleRestart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.target4. Enable and start services
Section titled “4. Enable and start services”sudo systemctl daemon-reloadsudo systemctl enable goiabada-authserversudo systemctl enable goiabada-adminconsolesudo systemctl start goiabada-authserversudo systemctl start goiabada-adminconsole5. Check status and logs
Section titled “5. Check status and logs”sudo systemctl status goiabada-authserversudo systemctl status goiabada-adminconsole
# View logssudo journalctl -u goiabada-authserver -fsudo journalctl -u goiabada-adminconsole -fRunning on macOS/Windows
Section titled “Running on macOS/Windows”For production on macOS, consider using launchd:
# Run manually for testing./goiabada-authserver &./goiabada-adminconsole &For persistent services, create launchd plist files in ~/Library/LaunchAgents/.
For production on Windows, use NSSM (Non-Sucking Service Manager):
# Install NSSM, then:nssm install GoiabadaAuthServer "C:\goiabada\goiabada-authserver.exe"nssm install GoiabadaAdminConsole "C:\goiabada\goiabada-adminconsole.exe"nssm start GoiabadaAuthServernssm start GoiabadaAdminConsoleReverse proxy
Section titled “Reverse proxy”For production, use Nginx as a reverse proxy (see reverse proxy guide). Configure Nginx to proxy to:
- Auth server:
http://127.0.0.1:9090 - Admin console:
http://127.0.0.1:9091
Direct HTTPS (optional)
Section titled “Direct HTTPS (optional)”If you prefer not to use a reverse proxy, configure direct HTTPS:
# Auth serverexport GOIABADA_AUTHSERVER_LISTEN_HOST_HTTPS="0.0.0.0"export GOIABADA_AUTHSERVER_LISTEN_PORT_HTTPS="8443"export GOIABADA_AUTHSERVER_CERTFILE="/path/to/fullchain.pem"export GOIABADA_AUTHSERVER_KEYFILE="/path/to/privkey.pem"
# Admin consoleexport GOIABADA_ADMINCONSOLE_LISTEN_HOST_HTTPS="0.0.0.0"export GOIABADA_ADMINCONSOLE_LISTEN_PORT_HTTPS="9444"export GOIABADA_ADMINCONSOLE_CERTFILE="/path/to/fullchain.pem"export GOIABADA_ADMINCONSOLE_KEYFILE="/path/to/privkey.pem"