Docker image which provides a full Eressea installation to host a local game.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
4.1 KiB

3 weeks ago
3 weeks ago
  1. # Eressea Docker
  2. This Docker image will provide a full [Eressea](https://wiki.eressea.de/index.php/Hauptseite) installation to host an own game.
  3. More details about Eressea find on
  4. - their [homepage](https://www.eressea.de/)
  5. - in [wiki](https://wiki.eressea.de/index.php/Hauptseite) you find the game rules and a lot of other information
  6. - and finally the source code, which is hosted on [GitHub](https://github.com/eressea)
  7. The Dockerfile is available on
  8. * [GitHub](https://github.com/jacsid/eressea_docker)
  9. * [Private Repository](https://git.jacs-home.eu/juergen/eressea-docker)
  10. ## Volumes
  11. By default, the image expects a single volume, located at `/data`. It will hold
  12. * configuration files
  13. * log files
  14. * e-mail
  15. * game data
  16. * game data backups
  17. ## General
  18. This image provides a command line interface. To see all possible commands, run the `help` command:
  19. ```
  20. docker run -it --rm \
  21. -v /path/to/my/local/eressea/folder:/data \
  22. jacsid/eressea help
  23. ```
  24. ## Initial setup
  25. ### Initiailze volume
  26. The empty `/data` volume needs to be initialzed. Without this step, none of the provided commands will work.
  27. First, it is necessary to create the ini files:
  28. ```
  29. docker run -it --rm \
  30. -v /path/to/my/local/eressea/folder:/data \
  31. jacsid/eressea generate -i \
  32. --game_name=MyOwnEressea \
  33. --rules=e3 \
  34. --from=gameserver@myhoster.com \
  35. --realname="MyOwnEressea\ Game\ Server" \
  36. --imap_server=imap.myhoster.com \
  37. --imap_user=imapuser \
  38. --imap_pass=imappwd \
  39. --imap_port=993 \
  40. --smtp_server=smtp.myhoster.com \
  41. --smtp_user=smtpuser \
  42. --smtp_pass=smtppwd \
  43. --smtp_port=587
  44. ```
  45. To get further details, call `generate` command with option `-h`
  46. Afterwards, create the relevant game folders:
  47. ```
  48. docker run -it --rm \
  49. -v /path/to/my/local/eressea/folder:/data \
  50. jacsid/eressea generate -g
  51. ```
  52. It is possible to combine both steps into one call by combining options `-i` and `-g`.
  53. ### Initialize game
  54. Now in `/data/game-1` a file called `newfactions` is available. Enter all players who will join the game. Each player goes into a seperate line:
  55. ```
  56. test.player@hotmail.com elf de
  57. seppl@gmx.at orc en
  58. [...]
  59. ```
  60. The entries, separated by one white space character, are email, race, and language. The language is either "de" for German or "en" for English. This file is read automatically when the game editor starts (see also [GM-Guide](https://github.com/eressea/server/wiki/GM-Guide#adding-players) on Eressea [GitHub](https://github.com/eressea/server) wiki).
  61. Now create the game map and seed the new players.
  62. ```
  63. docker run -it --rm \
  64. -v /path/to/my/local/eressea/folder:/data \
  65. jacsid/eressea map -n -w 50 -e 50 -s
  66. ```
  67. This command will create a new 50x50 map (option `-n`, `-w`, `-e`). In general, the `map` command opens the game map editor. With the option `-s` it will automatically be saved, when you exit the editor with key `Q`.
  68. On the game map, seed all new players via key `s`. To see where other players are located, press `h` followed by `p`.
  69. ### Send first game reports
  70. After players were seeded to the map, run the first game turn which sends the intial reports to the players.
  71. ```
  72. docker run -it --rm \
  73. -v /path/to/my/local/eressea/folder:/data \
  74. jacsid/eressea run
  75. ```
  76. ## Day by day use
  77. The players send their turn commands via email (see [initialize](#initiailze-volume) chapter above). Use the command `mail` to process incoming e-mails.
  78. Please note, that only Eressea mails are processed, **all other e-mails are deleted from server**!
  79. You maybe want to fetch e-mails (option `-f`) during the day and once a night you check the new game orders (option `-c`). But it is also possible to combine the options in one call. Use e.g. `cron` to automatize the calls.
  80. ```
  81. docker run -it --rm \
  82. -v /path/to/my/local/eressea/folder:/data \
  83. jacsid/eressea mail -f -c
  84. ```
  85. And somewhen the next game turn is processed with command `run`:
  86. ```
  87. docker run -it --rm \
  88. -v /path/to/my/local/eressea/folder:/data \
  89. jacsid/eressea run
  90. ```
  91. ## Update Docker image
  92. It's easy to update to the newest Docker image. Execute following command:
  93. ```
  94. docker image pull jacsid/eressea:latest
  95. ```
  96. Afterwards start the above described commands as usual.