firehose/dokku-setup.sh.sample
2026-03-18 13:55:49 +00:00

48 lines
1.5 KiB
Bash

#!/bin/bash
# dokku-setup.sh.sample - Set up Dokku app for firehose
#
# USAGE:
# 1. Copy to dokku-setup.sh: cp dokku-setup.sh.sample dokku-setup.sh
# 2. Fill in any empty strings below
# 3. Run on Dokku server: ./dokku-setup.sh
#
# Do NOT commit dokku-setup.sh (contains secrets)
set -e
APP="firehose" # <-- change to your desired Dokku app name / hostname
DB_NAME="firehose_db" # <-- valid chars: [A-Za-z0-9_] only
PHX_HOST="$APP" # <-- change to your full domain, e.g., firehose.example.com
# Auto-generate secrets
SECRET_KEY_BASE=$(openssl rand -base64 64 | tr -d '\n')
echo "==> Creating Dokku app: $APP"
dokku apps:create "$APP" || echo "App may already exist"
echo "==> Creating PostgreSQL database"
dokku postgres:create "${DB_NAME}" || echo "Database may already exist"
dokku postgres:link "${DB_NAME}" "$APP" || echo "Database may already be linked"
echo "==> Setting environment variables"
dokku config:set --no-restart "$APP" \
SECRET_KEY_BASE="$SECRET_KEY_BASE" \
PHX_HOST="$PHX_HOST" \
PORT="5000"
echo ""
echo "==> Setup complete!"
echo ""
echo "DATABASE_URL was set automatically by postgres:link."
echo ""
echo "Next steps:"
echo " 1. From your local machine, add the git remote:"
echo " git remote add dokku dokku@YOUR_SERVER:$APP"
echo ""
echo " 2. Push to deploy:"
echo " git push dokku main"
echo " (migrations run automatically via app.json postdeploy)"
echo ""
echo " 3. Set up SSL (after first deploy):"
echo " dokku letsencrypt:enable $APP"