forked from Hay1tsme/artemis
1
0
Fork 0
artemis/docs/INSTALL_DOCKER.md

73 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

# ARTEMiS - Docker Guide
This step-by-step guide assumes that you are running docker on Ubuntu 22.04.3 LTS with prior experience in Docker and Linux.
## Setup
1. Clone this code repository to a local folder
> git clone https://gitea.tendokyu.moe/fraxiinus/artemis.git
2. Create folders core, titles, config, log, cert in the nearly created artemis directory
3. Edit 'docker-compose.yml' file and make the following changes:
- Set AimeDB key value for `CFG_CORE_AIMEDB_KEY` variable; find it yourself
- Change database password `MYSQL_PASSWORD` variable; this will be used later for the app to connect to the database
- Change `MYSQL_ROOT_PASSWORD` variable
- Change `PMA_PASSWORD` variable; this is used for the database web-admin site
4. Rename/copy 'example_config' folder to 'config'
5. Edit 'config/core.yaml' file and make the following changes:
- Change server `listen_address` value to `0.0.0.0`
- Change title `hostname` value to your server's local IP (ex. `192.168.xxx.xxx`)
- Change database `host` value to `ma.db`
- Change database `password` value to the same value as `MYSQL_PASSWORD` from the 'docker-compose.yml' file
- Change database `memcached_host` value to `ma.memcached`
- Change aimedb `key` value to the AimeDB key value
- Change mucha `hostname` value to `0.0.0.0`
6. Copy data folders (bin and options) for whatever game you want this server to support, into the artemis directory
7. Edit 'Dockerfile' and be sure to add the data folders for the game you just added:
```dockerfile
ADD yourFolder yourFolder
```
8. Edit the file `entrypoint.sh` folder and add the correct importer commands after the line `python3 dbutils.py create`. See [Games documentation](game_specific_info.md) page for command examples.
## Run
Start the application
> docker-compose up
## Troubleshooting
### Game does not connect to ARTEMiS Allnet server
Double-check your core.yaml, the listen_address is most likely either not binded to the proper IP or the port is not opened
### Game does not connect to Title Server
1. Verify that your core.yaml is setup properly for both the server listen_address and title hostname
2. Boot your game and verify that an AllNet response does show and if it does, attempt to open the URI that is shown under a browser such as Edge, Chrome & Firefox.
3. If a page is shown, the server is working properly and if it doesn't, double check your port forwarding and also that you have entered the proper local IP under the Title hostname in core.yaml.
### Unhandled command under AimeDB
Double check your AimeDB key under core.yaml, it is incorrect.
### Memcache failed, error 3
1. Make sure memcached is properly installed and running. You can check the status of the service using the following command:
> sudo systemctl status memcached
2. If it is failing, double check the /etc/memcached.conf file, it may have duplicated arguments like the -I and -m
3. If it is still not working afterward, you can proceed with a workaround by manually editing the /core/data/cache.py file.
```py
# Make memcache optional
try:
has_mc = False
except ModuleNotFoundError:
has_mc = False
```