================================================================================ PRIMEIRA LIGA STATS - DOCKER DEPLOYMENT ================================================================================ Project Name: Primeira Liga Stats Version: 1.0.0 Created: February 2026 Framework: Next.js 14 with TypeScript Database: PostgreSQL 15 (Self-hosted via Docker) ================================================================================ QUICK START ================================================================================ To deploy the entire application, simply run: docker compose up -d That's it! The application will be available at: Main Website: http://localhost:3000 Admin Panel: http://localhost:3000/admin ================================================================================ WHAT HAPPENS ================================================================================ When you run `docker compose up -d`, Docker will: 1. Create a PostgreSQL 15 database container 2. Initialize the database with all required tables 3. Pre-configure the API key and default settings 4. Build the Next.js application 5. Start the web server on port 3000 No manual configuration is required! ================================================================================ FEATURES ================================================================================ MAIN WEBSITE (/): - Live match scores with real-time updates - League standings table with team positions - Top scorers leaderboard - Recent match results - Upcoming fixtures schedule - Auto-refresh countdown timer (5 minutes default) - Portuguese national colors theme (red/green) ADMIN PANEL (/admin): - Layout Settings (colors, site name, sections visibility) - API Key Management (view/change API key) - League Switcher (Primeira Liga / UEFA Euro) - API Statistics (request tracking, charts) ================================================================================ DOCKER COMMANDS ================================================================================ Start the application: docker compose up -d Stop the application: docker compose down View logs: docker compose logs -f View app logs only: docker compose logs -f app View database logs only: docker compose logs -f db Rebuild after changes: docker compose up -d --build Remove everything (including data): docker compose down -v ================================================================================ CONFIGURATION ================================================================================ The following environment variables are pre-configured in docker-compose.yml: DATABASE_URL - PostgreSQL connection string API_FOOTBALL_API_KEY - Your API-Football API key NEXTAUTH_URL - Application URL NEXTAUTH_SECRET - Session encryption key To change the API key: 1. Edit docker-compose.yml and update API_FOOTBALL_API_KEY 2. Run: docker compose up -d Or use the Admin Panel at /admin to change it without restarting. ================================================================================ DATA PERSISTENCE ================================================================================ Database data is stored in a Docker volume named 'postgres_data'. This means your data persists even when containers are stopped or removed. To backup the database: docker exec primeira_liga_db pg_dump -U primeiraliga primeiraliga > backup.sql To restore from backup: docker exec -i primeira_liga_db psql -U primeiraliga primeiraliga < backup.sql ================================================================================ PORT CONFIGURATION ================================================================================ Default port: 3000 To change the port, edit docker-compose.yml: ports: - "8080:3000" # Change 8080 to your desired port ================================================================================ SERVICES ================================================================================ The docker-compose setup includes two services: 1. db (PostgreSQL 15) - Container name: primeira_liga_db - Internal port: 5432 - Database: primeiraliga - User: primeiraliga - Password: primeiraliga2024 2. app (Next.js Application) - Container name: primeira_liga_app - External port: 3000 - Auto-restarts on failure ================================================================================ TROUBLESHOOTING ================================================================================ PROBLEM: Container won't start SOLUTION: Check logs with `docker compose logs -f` PROBLEM: Database connection failed SOLUTION: Wait a few seconds for the database to initialize, then try again PROBLEM: Port 3000 already in use SOLUTION: Change the port in docker-compose.yml or stop the conflicting service PROBLEM: API data not loading SOLUTION: 1. Check API key is valid at api-football.com 2. Check daily API limits (free tier: 100 requests/day) 3. View logs: docker compose logs -f app PROBLEM: Changes not appearing after edit SOLUTION: Rebuild with `docker compose up -d --build` ================================================================================ SYSTEM REQUIREMENTS ================================================================================ - Docker Engine 20.10+ - Docker Compose 2.0+ - 1GB RAM minimum - 2GB disk space ================================================================================ ACCESSING THE DATABASE ================================================================================ Connect to PostgreSQL directly: docker exec -it primeira_liga_db psql -U primeiraliga -d primeiraliga Useful SQL commands: \dt -- List all tables SELECT * FROM "Settings"; -- View settings SELECT * FROM "ApiRequestLog" ORDER BY "createdAt" DESC LIMIT 10; ================================================================================ API LIMITS ================================================================================ API-Football Free Tier: - 100 requests per day - Data updates every 15 minutes The application refreshes every 5 minutes by default. You can increase this interval in the Admin Panel to conserve API calls. ================================================================================ SUPPORT ================================================================================ API-Football: https://www.api-football.com/documentation-v3 Docker: https://docs.docker.com/ Next.js: https://nextjs.org/docs ================================================================================