r15ch13 / arkcluster

ARK: Survival Evolved as Docker Cluster
https://hub.docker.com/r/r15ch13/arkcluster
MIT License
30 stars 17 forks source link

Can't transfer characters #15

Open kashyn89 opened 10 months ago

kashyn89 commented 10 months ago

Hey guys, i'm at that point that the servers are running, but i cant transfer my chars between the servers, i can see that my player character file is loaded into the given cluster path, but if i travel the next server forces me to create a new character. I cant see anything in the logs and now i have no idea why this is happening. If i install a ark cluster via arkmanager directy on my host it works to travel between.

BR

aciddensity commented 10 months ago

Hi kashyn89, If you are using the docker-compose.yml file from this project it should work for you. Feel free to share some more about your setup and post your compose file (with sensitive information redacted) and I will take a look to try and help sort it out. I run a 6 map cluster for my friends using this project. The only difference I've made is to mount the cluster volume to a folder on the file system so I can sync it across multiple physical servers. One big challenge I faced early on was making sure the file permissions were the same for all servers that touched the shared cluster folder.

kashyn89 commented 10 months ago

Hey acid,

i've build it up with compose and managing it with portainer, ive also mapped the cluster volume directly to os to easy modify it, but, when i transfer the character, the character file is created/moved to the cluster folder but get forced to recreate the character, here is my whole compose


services:
  theisland:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "0 */3 * * *"
      CRON_AUTO_BACKUP: "0 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "TheIsland"
      SESSION_NAME: "ARK Cluster TheIsland"
      MAX_PLAYERS: 15
      RCON_ENABLE: "True"
      QUERY_PORT: 15000
      GAME_PORT: 15002
      RCON_PORT: 15003
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_theisland:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15000-15003:15000-15003/udp"
    restart: unless-stopped
    tty: true  

  thecenter:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "5 */3 * * *"
      CRON_AUTO_BACKUP: "5 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "TheCenter"
      SESSION_NAME: "ARK Cluster TheCenter"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15010
      GAME_PORT: 15012
      RCON_PORT: 15013
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_thecenter:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15010-15013:15010-15013/udp"
    restart: unless-stopped
    tty: true  

  scorchedearth:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "10 */3 * * *"
      CRON_AUTO_BACKUP: "10 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "ScorchedEarth_P"
      SESSION_NAME: "ARK Cluster Scorched Earth"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15120
      GAME_PORT: 15122
      RCON_PORT: 15123
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_scorchedearth:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15120-15123:15120-15123/udp"
    restart: unless-stopped
    tty: true  

  ragnarok:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "20 */3 * * *"
      CRON_AUTO_BACKUP: "20 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Ragnarok"
      SESSION_NAME: "ARK Cluster Ragnarok"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15020
      GAME_PORT: 15022
      RCON_PORT: 15023
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_ragnarok:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15020-15023:15020-15023/udp"
    restart: unless-stopped
    tty: true  

  aberration:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "25 */3 * * *"
      CRON_AUTO_BACKUP: "25 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Aberration_P"
      SESSION_NAME: "ARK Cluster Aberration"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15030
      GAME_PORT: 15032
      RCON_PORT: 15033
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_aberration:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15030-15033:15030-15033/udp"
    restart: unless-stopped
    tty: true  

  extinction:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "30 */3 * * *"
      CRON_AUTO_BACKUP: "30 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Extinction"
      SESSION_NAME: "ARK Cluster Extinction"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15040
      GAME_PORT: 15042
      RCON_PORT: 15043
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_extinction:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15040-15043:15040-15043/udp"
    restart: unless-stopped
    tty: true  

  valguero:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "35 */3 * * *"
      CRON_AUTO_BACKUP: "35 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Valguero_P"
      SESSION_NAME: "ARK Cluster Valguero"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15050
      GAME_PORT: 15052
      RCON_PORT: 15053
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_valguero:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15050-15053:15050-15053/udp"
    restart: unless-stopped
    tty: true  

  genesis:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "40 */3 * * *"
      CRON_AUTO_BACKUP: "40 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Genesis"
      SESSION_NAME: "ARK Cluster Genesis"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15060
      GAME_PORT: 15062
      RCON_PORT: 15063
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_genesis:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15060-15063:15060-15063/udp"
    restart: unless-stopped
    tty: true  

  crystalisles:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "45 */3 * * *"
      CRON_AUTO_BACKUP: "45 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "CrystalIsles"
      SESSION_NAME: "ARK Cluster Crystal Isles"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15070
      GAME_PORT: 15072
      RCON_PORT: 15073
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_crystalisles:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15070-15073:15070-15073/udp"
    restart: unless-stopped
    tty: true  

  gen2:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "50 */3 * * *"
      CRON_AUTO_BACKUP: "50 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Gen2"
      SESSION_NAME: "ARK Cluster Gen2"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15080
      GAME_PORT: 15082
      RCON_PORT: 15083
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_gen2:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15080-15083:15080-15083/udp"
    restart: unless-stopped
    tty: true  

  lostisland:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "55 */3 * * *"
      CRON_AUTO_BACKUP: "55 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "LostIsland"
      SESSION_NAME: "ARK Cluster Lost Island"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15090
      GAME_PORT: 15092
      RCON_PORT: 15093
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_lostisland:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15090-15093:15090-15093/udp"
    restart: unless-stopped
    tty: true  

  fjordur:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "0 */3 * * *"
      CRON_AUTO_BACKUP: "0 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "Fjordur"
      SESSION_NAME: "ARK Cluster Fjordur"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15100
      GAME_PORT: 15102
      RCON_PORT: 15103
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_fjordur:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15100-15103:15100-15103/udp"
    restart: unless-stopped
    tty: true  

  bossmap:
    image: r15ch13/arkcluster:latest
    deploy:
      mode: global
    environment:
      CRON_AUTO_UPDATE: "5 */3 * * *"
      CRON_AUTO_BACKUP: "5 */1 * * *"
      UPDATEONSTART: 1
      BACKUPONSTART: 1
      BACKUPONSTOP: 1
      WARNONSTOP: 1
      USER_ID: 1000
      GROUP_ID: 1000
      TZ: "Europe/Berlin"
      MAX_BACKUP_SIZE: 500
      SERVERMAP: "TheIsland"
      SESSION_NAME: "ARK Cluster Bossmap"
      MAX_PLAYERS: 15
      RCON_ENABLE: "False"
      QUERY_PORT: 15110
      GAME_PORT: 15112
      RCON_PORT: 15113
      SERVER_PVE: "False"
      SERVER_PASSWORD: "${server_pw}"
      ADMIN_PASSWORD: "${admin_pw}"
      SPECTATOR_PASSWORD: "${spectator_pw}"
      MODS: "${modlist_bossmap},${modlist}"
      CLUSTER_ID: "${clusterid}"
      GAME_USERSETTINGS_INI_PATH: "/cluster/${clusterid_bossmap}.GameUserSettings.ini"
      GAME_INI_PATH: "/cluster/${clusterid_bossmap}.Game.ini"
      KILL_PROCESS_TIMEOUT: 300
      KILL_ALL_PROCESSES_TIMEOUT: 300
    volumes:
      - server_bossmap:/ark
      - /opt/arkcluster:/cluster
    ports:
      - "15110-15113:15110-15113/udp"
    restart: unless-stopped
    tty: true  

volumes:
  server_theisland:
  server_thecenter:
  server_scorchedearth:
  server_ragnarok:
  server_aberration:
  server_extinction:
  server_valguero:
  server_genesis:
  server_crystalisles:
  server_gen2:
  server_lostisland:
  server_fjordur:
  server_bossmap:
  #cluster: #mapped to filesystem
aciddensity commented 10 months ago

Everything in your docker compose file looks pretty good to me. Based on what I can see I would look closely at the permissions of the /opt/arkcluster folder and it's contents. On my setup I changed the owner of the folder to match what I set in the USER_ID and GROUP_ID variables. So in this case you could try chown -R 1000:1000 /opt/arkcluster. This will set the owner and group to 1000 for /opt/arkcluster and anything within. You also want to make sure the owner has write permissions. You can do this with chmod -R u+w /opt/arkcluster. Hope this helps!

kashyn89 commented 10 months ago

Hey, this seems not the problem, permissions are correct and into the container i can see the cluster folder and files. I dont get i why its not working

kashyn89 commented 9 months ago

Any other suggestions here?

aciddensity commented 9 months ago

Sorry, I'm afraid I don't have much else to suggest. Based on the configuration you shared and my experiences using this project I don't think it's related to anything specific to just this docker image. You might try a smaller scale test with a configuration closer to the example shared in the docker-compose.yml in this repo. If you can get a small scale test working then it might give you clues for things you can try on your configuration.