An OGame clone in retro style
You can run retro-game on Docker Compose:
docker-compose upThis will setup a development environment, where you can test the game. The server should be running on http://127.0.0.1:8080.
Note that this setup is not ready for production! This setup may expose ports to database and redis. Make sure you configure it properly before running on production. Check etc directory if you are looking for systemd service and nginx configs.
Use the Gradle wrapper to build and test the application:
./gradlew test
./gradlew bootJarThe native battle engine can be built with:
./gradlew buildBattleEngineAdministrators can download and restore PostgreSQL backups from the Database
page in the admin panel. The application runtime must have pg_dump,
pg_restore, and psql installed. Both provided Docker images include these
tools.
Restores are atomic and overwrite the database objects contained in the backup.
The uploaded file size is limited to 1 GiB by default; this can be changed with
spring.servlet.multipart.max-file-size,
spring.servlet.multipart.max-request-size, and
retro-game.database-backup.max-size.
The Compose configuration uses PostgreSQL 17 and Redis 8. PostgreSQL data files cannot be reused directly across major versions. Before upgrading from the old PostgreSQL 12 configuration:
-
Download a database backup from the admin panel.
-
Stop the old stack with
docker compose downwithout the--volumesoption. -
Start the upgraded stack with
docker compose up -d --build. -
Copy the backup into PostgreSQL and restore it:
docker compose cp retro-game-backup.dump postgres:/tmp/retro-game-backup.dump docker compose exec postgres pg_restore \ --clean --if-exists --no-owner --no-privileges --single-transaction \ --username=postgres --dbname=retro-game /tmp/retro-game-backup.dump
Redis contains cache and session data and does not require migration. Existing sessions will be lost when its data is reset.
There is a testing server: https://retro-game.org.
If you want to chat about the game or development, see: https://discord.gg/FJ6rK4V.