v2
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
================================================================================
|
||||
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
|
||||
|
||||
================================================================================
|
||||
Reference in New Issue
Block a user