File Structure
Info
This page shows the structure of the akk-stack file system and how to interact with it.
Standard Server Directories¶
Within the eqemu-server container, the fileystem is ephermeral, meaning it will not persist through a reboot. The following directories noted that are shared to the host and will persist through a reboot.
Directory | Details |
---|---|
/opt/eqemu-perl/ | Where our eqemu-specific version of Perl is installed to. You usually don't need to do anything here. |
~/.ssh/ | (Shared to the host @./assets/ssh/) Where SSH client keys are persisted if you use them to clone custom Git repo's using SSH etc. Also used to store keys of users who access eqemu-server |
~/assets | (Shared to the host @./assets) This is for common server utilities, management scripts, crontab, these are usually a part of akk-stack exclusively |
~/code | (Shared to the host @./code) Where EQEmu Server source code is located if you wish to compile yourself (not required) |
~/code/build | Where the CMake configuration is held for make or ninja - Navigate via "build" command |
~/code/build/bin | If you compile, where executables are built to and symlinked to ~/server/bin |
~/server | (Shared to the host @./server) Where the main server folder is located. - Navigate via "server" command |
~/server/backups | Where server automatic database backups go when there are server schema updates. These can be used to revert prior to an update if needed. Rare necessity but here if needed. |
~/server/maps | Where server side maps are located - Navigate via "maps" command |
~/server/quests | Where server side quests are located - Navigate via "quests" command |
~/server/shared | Where server side shared memory mapped files are located |
~/server/logs | Where server logs are located |
~/server/plugins | Where server quest perl plugins are located - Navigate via "plugins" command |
~/server/lua_modules | Where server quest lua plugins are located - Navigate via "bin" command |
~/server/assets | Where server client patches, opcodes, misc are located - Navigate via "assets" command |
~/server/bin | Where server executables are located - Navigate via "bin" command |
~/server/startup | Where server startup scripts are located, for running custom services not managed by Spire on container bootup |
Symlinked Directories¶
- Server binaries - Never need to copy binaries after a compile
- Patch files
- Quests
- Plugins
- LUA Modules
Symlinks are created on bootup of the container and are not ones you need to manage yourself and are here for convenience.
This means that when the ~/code directory is updated via git pull the opcodes and patch files are automatically updated.
When you compile new binaries, the symlinks are automatically updated to the new binaries in the ~/server/bin directory.
~/assets/scripts/create-symlinks.pl
Symlinking Source: /home/eqemu/code/build/bin/export_client_files Target: /home/eqemu/server/bin/export_client_files
Symlinking Source: /home/eqemu/code/build/bin/import_client_files Target: /home/eqemu/server/bin/import_client_files
Symlinking Source: /home/eqemu/code/build/bin/loginserver Target: /home/eqemu/server/bin/loginserver
Symlinking Source: /home/eqemu/code/build/bin/queryserv Target: /home/eqemu/server/bin/queryserv
Symlinking Source: /home/eqemu/code/build/bin/shared_memory Target: /home/eqemu/server/bin/shared_memory
Symlinking Source: /home/eqemu/code/build/bin/ucs Target: /home/eqemu/server/bin/ucs
Symlinking Source: /home/eqemu/code/build/bin/world Target: /home/eqemu/server/bin/world
Symlinking Source: /home/eqemu/code/build/bin/zone Target: /home/eqemu/server/bin/zone
# Symlinking patches
Symlinking Source: /home/eqemu/code/utils/patches/patch_RoF.conf Target: /home/eqemu/server/assets/patches/patch_RoF.conf
Symlinking Source: /home/eqemu/code/utils/patches/patch_SoD.conf Target: /home/eqemu/server/assets/patches/patch_SoD.conf
Symlinking Source: /home/eqemu/code/utils/patches/patch_UF.conf Target: /home/eqemu/server/assets/patches/patch_UF.conf
Symlinking Source: /home/eqemu/code/utils/patches/patch_RoF2.conf Target: /home/eqemu/server/assets/patches/patch_RoF2.conf
Symlinking Source: /home/eqemu/code/utils/patches/patch_Titanium.conf Target: /home/eqemu/server/assets/patches/patch_Titanium.conf
Symlinking Source: /home/eqemu/code/utils/patches/patch_SoF.conf Target: /home/eqemu/server/assets/patches/patch_SoF.conf
# Symlinking opcodes
Symlinking Source: /home/eqemu/code/utils/patches/opcodes.conf Target: /home/eqemu/server/assets/opcodes/opcodes.conf
Symlinking Source: /home/eqemu/code/utils/patches/mail_opcodes.conf Target: /home/eqemu/server/assets/opcodes/mail_opcodes.conf
# Symlinking plugins
Symlinking Source: /home/eqemu/server/quests/plugins/ Target: /home/eqemu/server
# Symlinking lua_modules
Symlinking Source: /home/eqemu/server/quests/lua_modules/ Target: /home/eqemu/server