Added files needed to deploy twenty on podman using podman-compose. --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
72 lines
2.1 KiB
Bash
72 lines
2.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
if [ ! -f "$(dirname "$0")/.env" ]; then
|
|
echo "Error: .env file not found"
|
|
exit 1
|
|
fi
|
|
source "$(dirname "$0")/.env"
|
|
|
|
## steps to cleanup and start over from scratch - useful when testing
|
|
#podman pod stop twenty-pod
|
|
#podman pod rm twenty-pod
|
|
#podman volume rm twenty-db-data twenty-server-data twenty-redis-data
|
|
# end of cleanup
|
|
|
|
podman volume create twenty-db-data
|
|
podman volume create twenty-server-data
|
|
podman volume create twenty-redis-data
|
|
|
|
podman pod create --name twenty-pod -p 127.0.0.1:8080:3000
|
|
|
|
podman run -d --pod twenty-pod --name twenty-db \
|
|
-e POSTGRES_DB=twenty \
|
|
-e POSTGRES_USER=twenty \
|
|
-e POSTGRES_PASSWORD="$POSTGRES_PASSWORD" \
|
|
-v twenty-db-data:/var/lib/postgresql/data:Z \
|
|
docker.io/library/postgres:16
|
|
|
|
podman run -d --pod twenty-pod --name twenty-redis \
|
|
-v twenty-redis-data:/data:Z \
|
|
docker.io/library/redis:latest
|
|
|
|
podman run -d --pod twenty-pod --name twenty-server \
|
|
-e NODE_PORT=3000 \
|
|
-e SERVER_URL="$SERVER_URL" \
|
|
-e PG_DATABASE_URL="postgresql://twenty:$POSTGRES_PASSWORD@twenty-db:5432/twenty" \
|
|
-e REDIS_URL="redis://twenty-redis:6379" \
|
|
-e APP_SECRET="$APP_SECRET" \
|
|
-e NODE_ENV=production \
|
|
-e LOG_LEVEL=info \
|
|
-v twenty-server-data:/app/docker-data:Z \
|
|
docker.io/twentycrm/twenty:latest
|
|
|
|
podman run -d --pod twenty-pod --name twenty-worker \
|
|
--init \
|
|
-e SERVER_URL="$SERVER_URL" \
|
|
-e PG_DATABASE_URL="postgresql://twenty:$POSTGRES_PASSWORD@twenty-db:5432/twenty" \
|
|
-e REDIS_URL="redis://twenty-redis:6379" \
|
|
-e APP_SECRET="$APP_SECRET" \
|
|
-e DISABLE_DB_MIGRATIONS=true \
|
|
-e NODE_ENV=production \
|
|
-e LOG_LEVEL=info \
|
|
-v twenty-server-data:/app/docker-data:Z \
|
|
docker.io/twentycrm/twenty:latest \
|
|
yarn worker:prod
|
|
|
|
# wait some time, check status
|
|
sleep 30
|
|
podman ps --pod -f name=twenty-pod
|
|
|
|
|
|
mkdir -p ~/.config/systemd/user
|
|
if [ ! -f "twentycrm.service" ]; then
|
|
echo "Error: twentycrm.service file not found"
|
|
exit 1
|
|
fi
|
|
cp twentycrm.service ~/.config/systemd/user
|
|
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable twentycrm.service
|
|
systemctl --user start twentycrm.service
|
|
|