Introduction¶
AkkStack is a simple Docker Compose environment that is augmented with developer and operator focused tooling for running EverQuest Emulator servers.
You can have an entire server running within minutes, configured and ready to go for development or **production ** use!
This is what I've used in production, battle-tested, for almost 5+ years. I've worked through a lot of issues to give you the final stable product.
It's what I've also used exclusively for development as well as many other developers!
Repository https://github.com/Akkadius/akk-stack
Features¶
- Perl 5.24.4 x64 (Quests)
- Lua Server Runtime (Quests)
- MariaDB x64 10.x
- Latest PEQ Database
- Latest PEQ Quests
- V2 Server Side Maps
- Optimized and latest server binaries (Stable)
- Spire Web Admin / Content Editor
- ProjectEQ Editor
- SSH in the eqemu-server container on port 2222
- make menu for managing the eqemu-server container
- make menu for managing the host-level container environment
- Cron Jobs for the eqemu-server container
- Startup Scripts for the eqemu-server container
- Docker Compose v2 for easy management
- Developer and Operator focused tooling
- Developer tuned environment for easy development
- Operator tuned environment for easy management
Containerized Services¶
Service | Description |
---|---|
eqemu-server | Runs the emulator server and all services related to the emulator server |
mariadb | MySQL service |
phpmyadmin | (Optional) PhpMyAdmin which is automatically configured behind a password proxy |
peq-editor | (Optional) PEQ Editor which is automatically configured |
ftp-quests | (Optional) An FTP instance fully ready to be used to remotely edit quests |
backup-cron | (Optional) A container built to automatically backup (Dropbox API) the entire deployment and perform database and quest snapshots for with different retention schedules defined in .env |
Spire Web Admin¶
Spire is a powerhouse web admin panel as well as rich server content editor. It is continually being developed and new features being added regularly.
PEQ Editor¶
Automatically configured with pre-set admin password, listens on port 8081 by default
PhpMyAdmin¶
Automatically configured PhpMyAdmin instance with pre-set admin password (Behind a password protected proxy) listens on port 8082 by default
CLI Menus¶
Embedded Server Management CLI¶
Embedded server management CLI makes for quick and easy management of the server
In Container Command Menu¶
A make menu to manage the in-container environment, need to be in home directory cd ~/ to use
Host-Level Command Menu¶
A make menu to manage the host-level container environment
SSH¶
eqemu-server starts with SSH server, the installation provides a generated 30+ character password, persistent keys through reboot.
Info
Default port is 2222
Cron Jobs¶
Cronjob support via crontab is available in the eqemu-server container.
Edit ~/assets/cron/crontab.cron directly and the file watcher will install new crontab changes. (You cannot use crontab -e)
For example, PEQ has a configured database dump cron that feeds https://db.projecteq.net
eqemu@f30bb0b5bd3c:~$ cat ~/assets/cron/crontab.cron
0 3 * * * cd /home/eqemu/server && ./scripts/peq-dump.sh && curl -F 'data=@/tmp/peq-latest.zip' http://db.projecteq.net/api/v1/dump/upload\?key\=apikey && rm /tmp/peq-latest.zip
Startup Scripts¶
The eqemu-server container will start applications or scripts in ~/server/startup/* folder.
Warning
Do not try to run eqemu services here as they are managed by Spire
This is useful for running custom scripts or applications on startup, for example, a Discord bot
eqemu@f30bb0b5bd3c:~$ ls -lsh ~/server/startup
total 8.7M
8.7M -rwxr-xr-x 1 eqemu eqemu 8.7M Jun 10 2019 discordeq
Automated Backups¶
There is a backup-cron container that is optional to use, it will automatically backup the entire deployment and perform database and quest snapshots for with different retention schedules defined in .env