Container Startup
Diagnosing and resolving container startup issues for ActionsManager Self-Hosted.
Table of contents
Quick Diagnostics
Run these commands first for any startup issue:
# Check if the container is running
docker ps --filter name=actions-manager
# View recent logs
docker logs actions-manager --tail=100
# Check port availability
curl -I http://localhost:8080
For Docker Compose:
docker compose -f docker-compose.self-hosted.yml ps
docker compose -f docker-compose.self-hosted.yml logs --tail=100
Container Fails to Start
Port 8080 Already in Use
Symptom: Container exits immediately or port binding fails.
Solution:
# Find what is using port 8080
lsof -i :8080
# or
ss -tlnp | grep 8080
# Stop the conflicting service, or run ActionsManager on a different port:
docker run -p 9090:8080 ... # map host port 9090 to container port 8080
Missing or Invalid SECRET_KEY
Symptom: Container starts but immediately fails with a configuration error.
Solution: Ensure SECRET_KEY is set when running the container:
-e SECRET_KEY=$(openssl rand -hex 32)
Generate a new secret key if needed. Changing SECRET_KEY on a running deployment will invalidate all existing sessions.
Volume Mount Permission Error
Symptom: Container fails with a permissions error when writing to the data volume.
Solution:
# Check the volume
docker volume inspect actions-manager-data
# Remove and recreate the volume (this deletes all data)
docker volume rm actions-manager-data
docker volume create actions-manager-data
Container Starts but UI is Inaccessible
Checking Service Health
# Check backend API health
curl http://localhost:8080/health
# Check frontend is served
curl -I http://localhost:8080
If the backend health check fails, review logs for startup errors:
docker logs actions-manager --tail=200
Database Initialization Errors
Symptom: Logs show database migration or initialization errors.
Solution:
- Check if the data volume is mounted correctly
- Check disk space:
df -h - If the database is corrupted, back up the volume and reinitialize:
# Stop the container
docker stop actions-manager
# Inspect the volume path
docker volume inspect actions-manager-data
# Restart — the application will attempt to reinitialize the database
docker start actions-manager
Environment Variable Issues
Required Environment Variables
Ensure these are set before starting the container:
| Variable | Required | Description |
|---|---|---|
INSTALLATION_MODE | Yes | Set to self-hosted |
SECRET_KEY | Yes | Random secret for session encryption |
REACT_APP_BACKEND_URL | Yes | URL where the backend is accessible |
REACT_APP_FRONTEND_URL | Yes | URL where the frontend is accessible |
REACT_APP_WEBSOCKET_URL | Yes | WebSocket URL (ws:// prefix) |
GITHUB_CLIENT_ID | OAuth only | GitHub OAuth App client ID |
GITHUB_CLIENT_SECRET | OAuth only | GitHub OAuth App client secret |
Checking Environment Variables in a Running Container
docker exec actions-manager env | grep -E 'INSTALLATION_MODE|REACT_APP|GITHUB_CLIENT'
Memory and Disk Issues
# Check memory
free -h
# Check disk space
df -h
# Check container resource usage
docker stats actions-manager
ActionsManager requires at least 4 GB RAM. If the container is OOM-killed, increase available memory or add a swap file.
Getting More Help
If you cannot resolve the issue:
- Collect logs:
docker logs actions-manager > actions-manager.log 2>&1 - Review the Common Errors page
- Check GitHub Issues for similar reports
- Open a new issue with your logs (redact all secrets and tokens before posting)
Related Topics
- Common Errors — authentication, API, and workflow errors
- GitHub Permissions — permission requirements
- Installation — installation guide