167 lines
7.2 KiB
Markdown
167 lines
7.2 KiB
Markdown
# ARK: Survival Evolved - Docker
|
|
|
|
Docker build for managing an ARK: Survival Evolved server.
|
|
|
|
This image uses [Ark Server Tools](https://github.com/FezVrasta/ark-server-tools) to manage an ark server.
|
|
|
|
*If you use an old volume, get the new arkmanager.cfg in the template directory.*
|
|
__Don't forget to use `docker pull turzam/ark` to get the latest version of the image__
|
|
|
|
|
|
## Features
|
|
- Easy install (no steamcmd / lib32... to install)
|
|
- Use Ark Server Tools : update/install/start/backup/rcon/mods
|
|
- Easy crontab configuration
|
|
- Easy access to ark config file
|
|
- Mods handling (via Ark Server Tools)
|
|
- `Docker stop` is a clean stop
|
|
|
|
## Usage
|
|
Fast & Easy server setup :
|
|
`docker run -d -p 7778:7778 -p 7778:7778/udp -p 27015:27015 -p 27015:27015/udp -e SESSIONNAME=myserver -e ADMINPASSWORD="mypasswordadmin" --name ark turzam/ark`
|
|
|
|
You can map the ark volume to access config files :
|
|
`docker run -d -p 7778:7778 -p 7778:7778/udp -p 27015:27015 -p 27015:27015/udp -e SESSIONNAME=myserver -v /my/path/to/ark:/ark --name ark turzam/ark`
|
|
Then you can edit */my/path/to/ark/arkmanager.cfg* (the values override GameUserSetting.ini) and */my/path/to/ark/[GameUserSetting.ini/Game.ini]*
|
|
|
|
You can manager your server with rcon if you map the rcon port (you can rebind the rcon port with docker):
|
|
`docker run -d -p 7778:7778 -p 7778:7778/udp -p 27015:27015 -p 27015:27015/udp -p 32330:32330 -e SESSIONNAME=myserver --name ark turzam/ark`
|
|
|
|
You can change server and steam port to allow multiple servers on same host:
|
|
*(You can't just rebind the port with docker. It won't work, you need to change STEAMPORT & SERVERPORT variable)*
|
|
`docker run -d -p 7779:7779 -p 7779:7779/udp -p 27016:27016 -p 27016:27016/udp -p 32331:32330 -e SESSIONNAME=myserver2 -e SERVERPORT=27016 -e STEAMPORT=7779 --name ark2 turzam/ark`
|
|
|
|
You can check your server with :
|
|
`docker exec ark arkmanager status`
|
|
|
|
You can manually update your mods:
|
|
`docker exec ark arkmanager update --update-mods`
|
|
|
|
You can manually update your server:
|
|
`docker exec ark arkmanager update --force`
|
|
|
|
You can force save your server :
|
|
`docker exec ark arkmanager saveworld`
|
|
|
|
You can backup your server :
|
|
`docker exec ark arkmanager backup`
|
|
|
|
You can upgrade Ark Server Tools :
|
|
`docker exec ark arkmanager upgrade-tools`
|
|
|
|
You can use rcon command via docker :
|
|
`docker exec ark arkmanager rconcmd ListPlayers`
|
|
*Full list of available command [here](http://steamcommunity.com/sharedfiles/filedetails/?id=454529617&searchtext=admin)*
|
|
|
|
__You can check all available command for arkmanager__ [here](https://github.com/FezVrasta/ark-server-tools/blob/master/README.md)
|
|
|
|
You can easily configure automatic update and backup.
|
|
If you edit the file `/my/path/to/ark/crontab` you can add your crontab job.
|
|
For example :
|
|
`# Update the server every hours`
|
|
`0 * * * * arkmanager update --warn --update-mods >> /ark/log/crontab.log 2>&1`
|
|
`# Backup the server each day at 00:00 `
|
|
`0 0 * * * arkmanager backup >> /ark/log/crontab.log 2>&1`
|
|
*You can check [this website](http://www.unix.com/man-page/linux/5/crontab/) for more information on cron.*
|
|
|
|
To add mods, you only need to change the variable ark_GameModIds in *arkmanager.cfg* with a list of your modIds (like this `ark_GameModIds="987654321,1234568"`). If UPDATEONSTART is enable, just restart your docker or use `docker exec ark arkmanager update --update-mods`.
|
|
|
|
---
|
|
|
|
## Recommended Usage
|
|
- First run
|
|
`docker run -it -p 7778:7778 -p 7778:7778/udp -p 27015:27015 -p 27015:27015/udp -p 32330:32330 -e SESSIONNAME=myserver -e ADMINPASSWORD="mypasswordadmin" -e AUTOUPDATE=120 -e AUTOBACKUP=60 -e WARNMINUTE=30 -v /my/path/to/ark:/ark --name ark turzam/ark`
|
|
- Wait for ark to be downloaded installed and launched, then Ctrl+C to stop the server.
|
|
- Edit */my/path/to/ark/GameUserSetting.ini and Game.ini*
|
|
- Edit */my/path/to/ark/arkserver.cfg* to add mods and configure warning time.
|
|
- Add auto update every day and autobackup by editing */my/path/to/ark/crontab* with this lines :
|
|
`0 0 * * * arkmanager update --warn --update-mods >> /ark/log/crontab.log 2>&1`
|
|
`0 0 * * * arkmanager backup >> /ark/log/crontab.log 2>&1`
|
|
- `docker start ark`
|
|
- Check your server with :
|
|
`docker exec ark arkmanager status`
|
|
|
|
---
|
|
|
|
## Variables
|
|
+ __SESSIONNAME__
|
|
Name of your ark server (default : "Ark Docker")
|
|
+ __SERVERMAP__
|
|
Map of your ark server (default : "TheIsland")
|
|
+ __SERVERPASSWORD__
|
|
Password of your ark server (default : "")
|
|
+ __ADMINPASSWORD__
|
|
Admin password of your ark server (default : "adminpassword")
|
|
+ __SERVERPORT__
|
|
Ark server port (can't rebind with docker, it doesn't work) (default : 27015)
|
|
+ __STEAMPORT__
|
|
Steam server port (can't rebind with docker, it doesn't work) (default : 7778)
|
|
+ __BACKUPONSTART__
|
|
1 : Backup the server when the container is started. 0: no backup (default : 1)
|
|
+ __UPDATEPONSTART__
|
|
1 : Update the server when the container is started. 0: no update (default : 1)
|
|
+ __BACKUPONSTOP__
|
|
1 : Backup the server when the container is stopped. 0: no backup (default : 0)
|
|
+ __WARNONSTOP__
|
|
1 : Warn the players before the container is stopped. 0: no warning (default : 0)
|
|
+ __TZ__
|
|
Time Zone : Set the container timezone (for crontab). (You can get your timezone posix format with the command `tzselect`. For example, France is "Europe/Paris").
|
|
+ __UID__
|
|
UID of the user used. Owner of the volume /ark
|
|
+ __GID__
|
|
GID of the user used. Owner of the volume /ark
|
|
|
|
|
|
---
|
|
|
|
## Volumes
|
|
+ __/ark__ : Working directory :
|
|
+ /ark/server : Server files and data.
|
|
+ /ark/log : logs
|
|
+ /ark/backup : backups
|
|
+ /ark/arkmanager.cfg : config file for Ark Server Tools
|
|
+ /ark/crontab : crontab config file
|
|
+ /ark/Game.ini : ark game.ini config file
|
|
+ /ark/GameUserSetting.ini : ark gameusersetting.ini config file
|
|
+ /ark/template : Default config files
|
|
+ /ark/template/arkmanager.cfg : default config file for Ark Server Tools
|
|
+ /ark/template/crontab : default config file for crontab
|
|
+ /ark/staging : default directory if you use the --downloadonly option when updating.
|
|
|
|
---
|
|
|
|
## Expose
|
|
+ Port : __STEAMPORT__ : Steam port (default: 7778)
|
|
+ Port : __SERVERPORT__ : server port (default: 27015)
|
|
+ Port : __32330__ : rcon port
|
|
|
|
---
|
|
|
|
## Known issues
|
|
|
|
---
|
|
|
|
## Changelog
|
|
+ 1.0 :
|
|
- Initial image : works with Ark Server tools 1.3
|
|
- Add auto-update & auto-backup
|
|
+ 1.1 :
|
|
- Works with Ark Server Tools 1.4 [See changelog here](https://github.com/FezVrasta/ark-server-tools/releases/tag/v1.4)
|
|
- Handle mods && auto update mods
|
|
+ 1.2 :
|
|
- Remove variable AUTOBACKUP & AUTOUPDATE
|
|
- Remove variable WARNMINUTE (can now be find in arkmanager.cfg)
|
|
- Add crontab support
|
|
- You can now config crontab with the file /your/ark/path/crontab
|
|
- Add template directory with default config files.
|
|
- Add documentation on TZ variable.
|
|
+ 1.3 :
|
|
- Add BACKUPONSTOP to backup the server when you stop the server (thanks to [fkoester](https://github.com/fkoester))
|
|
- Add WARNONSTOP to add warning message when you stop the server (default: 60 min)
|
|
- Works with Ark Server Tools v1.5
|
|
- Compressing backups so they take up less space
|
|
- Downloading updates to a staging directory before applying
|
|
- Added support for automatically updating on restart
|
|
- Show a spinner when updating
|
|
- Add UID & GID to set the uid & gid of the user used in the container (and permissions on the volume /ark)
|
|
|