{"id":21456347,"url":"https://github.com/zcube/factorio-docker-ssh","last_synced_at":"2025-03-17T03:26:23.325Z","repository":{"id":65239228,"uuid":"588757509","full_name":"ZCube/factorio-docker-ssh","owner":"ZCube","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-02T06:07:58.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T13:14:57.873Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZCube.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2023-01-13T23:15:43.000Z","updated_at":"2024-11-02T06:08:02.000Z","dependencies_parsed_at":"2023-02-18T01:15:43.056Z","dependency_job_id":null,"html_url":"https://github.com/ZCube/factorio-docker-ssh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZCube%2Ffactorio-docker-ssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZCube%2Ffactorio-docker-ssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZCube%2Ffactorio-docker-ssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZCube%2Ffactorio-docker-ssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZCube","download_url":"https://codeload.github.com/ZCube/factorio-docker-ssh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243966924,"owners_count":20376146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T05:15:27.862Z","updated_at":"2025-03-17T03:26:23.291Z","avatar_url":"https://github.com/ZCube.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# factorio-docker-ssh\n\n## factorio-docker + sshd\n\n* The Factorio Docker SSH image is a Docker image that runs the OpenSSH server and makes only Factorio executable using ForceCommand.\n\n* [Factorio Server Manager](https://github.com/OpenFactorioServerManager/factorio-server-manager) or [FactoCord](https://github.com/FactoKit/FactoCord) manages the process directly. This is necessary for save file management, loading, and mod settings. However, writing a dedicated Factorio Docker for this is not easy and difficult to maintain.\n\n## Usage\n\n* Replace the Factorio execution path with the path of the ssh connection script\n* Set up the volume so that the /factorio path is shared by the management tools and factorio-docker-ssh\n* Default Password : factorio\n* Password can be changed by setting the PASSWORD environment variable.\n\n## Minimal Demo\n\n```\n$ docker run --rm -ti -p 2222:2222 ghcr.io/zcube/factorio-docker-ssh:latest \u0026\nuse default password\n\n$ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o GlobalKnownHostsFile=/dev/null root@localhost -p 2222\nWarning: Permanently added '[localhost]:2222' (ED25519) to the list of known hosts.\nroot@localhost's password: \nPTY allocation request failed on channel 0\n+ FACTORIO_VOL=/factorio\n+ LOAD_LATEST_SAVE=true\n+ GENERATE_NEW_SAVE=false\n+ SAVE_NAME=\n+ BIND=\n+ mkdir -p /factorio\n+ mkdir -p /factorio/saves\n+ mkdir -p /factorio/config\n+ mkdir -p /factorio/mods\n+ mkdir -p /factorio/scenarios\n+ mkdir -p /factorio/script-output\n+ [[ ! -f /factorio/config/rconpw ]]\n+ pwgen 15 1\n+ [[ ! -f /factorio/config/server-settings.json ]]\n+ cp /opt/factorio/data/server-settings.example.json /factorio/config/server-settings.json\n+ [[ ! -f /factorio/config/map-gen-settings.json ]]\n+ cp /opt/factorio/data/map-gen-settings.example.json /factorio/config/map-gen-settings.json\n+ [[ ! -f /factorio/config/map-settings.json ]]\n+ cp /opt/factorio/data/map-settings.example.json /factorio/config/map-settings.json\n++ find -L /factorio/saves -iname '*.tmp.zip' -mindepth 1\n++ wc -l\n+ NRTMPSAVES=0\n+ [[ 0 -gt 0 ]]\n+ [[ '' == \\t\\r\\u\\e ]]\n++ id -u\n+ [[ 0 = 0 ]]\n+ usermod -o -u 845 factorio\nusermod: no changes\n+ groupmod -o -g 845 factorio\n+ chown -R factorio:factorio /factorio\n+ SU_EXEC='su-exec factorio'\n+ sed -i '/write-data=/c\\write-data=\\/factorio/' /opt/factorio/config/config.ini\n++ find -L /factorio/saves -iname '*.zip' -mindepth 1\n++ wc -l\n+ NRSAVES=0\n+ [[ false != true ]]\n+ [[ 0 == 0 ]]\n+ GENERATE_NEW_SAVE=true\n+ SAVE_NAME=_autosave1\n+ [[ true == true ]]\n+ [[ -z _autosave1 ]]\n+ [[ -f /factorio/saves/_autosave1.zip ]]\n+ su-exec factorio /opt/factorio/bin/x64/factorio --create /factorio/saves/_autosave1.zip --map-gen-settings /factorio/config/map-gen-settings.json --map-settings /factorio/config/map-settings.json\n   0.000 2023-01-14 00:08:29; Factorio 1.1.76 (build 60350, linux64, headless)\n   0.000 Operating system: Linux\n   0.000 Program arguments: \"/opt/factorio/bin/x64/factorio\" \"--create\" \"/factorio/saves/_autosave1.zip\" \"--map-gen-settings\" \"/factorio/config/map-gen-settings.json\" \"--map-settings\" \"/factorio/config/map-settings.json\" \n   0.000 Config path: /opt/factorio/config/config.ini\n   0.000 Read data path: /opt/factorio/data\n   0.000 Write data path: /factorio [17696/59767MB]\n   0.000 Binaries path: /opt/factorio/bin\n   0.007 System info: [CPU: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz, 6 cores, RAM: 7859 MB]\n   0.007 Environment: DISPLAY=\u003cunset\u003e WAYLAND_DISPLAY=\u003cunset\u003e DESKTOP_SESSION=\u003cunset\u003e XDG_SESSION_DESKTOP=\u003cunset\u003e XDG_CURRENT_DESKTOP=\u003cunset\u003e __GL_FSAA_MODE=\u003cunset\u003e __GL_LOG_MAX_ANISO=\u003cunset\u003e __GL_SYNC_TO_VBLANK=\u003cunset\u003e __GL_SORT_FBCONFIGS=\u003cunset\u003e __GL_YIELD=\u003cunset\u003e\n   0.007 Running in headless mode\n   0.012 Loading mod core 0.0.0 (data.lua)\n   0.037 Loading mod base 1.1.76 (data.lua)\n   0.222 Loading mod base 1.1.76 (data-updates.lua)\n   0.306 Checksum for core: 870127790\n   0.306 Checksum of base: 3065294274\n   0.524 Prototype list checksum: 3034860339\n   0.574 Info PlayerData.cpp:73: Local player-data.json unavailable\n   0.574 Info PlayerData.cpp:78: Cloud player-data.json unavailable\n   0.575 Factorio initialised\n   0.576 Info Main.cpp:745: Creating new map /factorio/saves/_autosave1.zip\n   1.207 Loading level.dat: 989446 bytes.\n   1.207 Info Scenario.cpp:199: Map version 1.1.76-0\n   1.229 Checksum for script /factorio/temp/currently-playing/control.lua: 2881393120\nDone.\n   1.340 Goodbye\n+ FLAGS=(--port \"$PORT\" --server-settings \"$CONFIG/server-settings.json\" --server-banlist \"$CONFIG/server-banlist.json\" --rcon-port \"$RCON_PORT\" --server-whitelist \"$CONFIG/server-whitelist.json\" --use-server-whitelist --server-adminlist \"$CONFIG/server-adminlist.json\" --rcon-password \"$(cat \"$CONFIG/rconpw\")\" --server-id /factorio/config/server-id.json)\n++ cat /factorio/config/rconpw\n+ '[' -n '' ']'\n+ [[ true == true ]]\n+ FLAGS+=(--start-server-load-latest)\n+ exec su-exec factorio /opt/factorio/bin/x64/factorio --port 34197 --server-settings /factorio/config/server-settings.json --server-banlist /factorio/config/server-banlist.json --rcon-port 27015 --server-whitelist /factorio/config/server-whitelist.json --use-server-whitelist --server-adminlist /factorio/config/server-adminlist.json --rcon-password ibee9pae6yaegaN --server-id /factorio/config/server-id.json --start-server-load-latest\n   0.000 2023-01-14 00:08:30; Factorio 1.1.76 (build 60350, linux64, headless)\n   0.000 Operating system: Linux\n   0.000 Program arguments: \"/opt/factorio/bin/x64/factorio\" \"--port\" \"34197\" \"--server-settings\" \"/factorio/config/server-settings.json\" \"--server-banlist\" \"/factorio/config/server-banlist.json\" \"--rcon-port\" \"27015\" \"--server-whitelist\" \"/factorio/config/server-whitelist.json\" \"--use-server-whitelist\" \"--server-adminlist\" \"/factorio/config/server-adminlist.json\" \"--rcon-password\" \u003cprivate\u003e \"--server-id\" \"/factorio/config/server-id.json\" \"--start-server-load-latest\" \n   0.000 Config path: /opt/factorio/config/config.ini\n   0.000 Read data path: /opt/factorio/data\n   0.000 Write data path: /factorio [17695/59767MB]\n   0.000 Binaries path: /opt/factorio/bin\n   0.006 System info: [CPU: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz, 6 cores, RAM: 7859 MB]\n   0.006 Environment: DISPLAY=\u003cunset\u003e WAYLAND_DISPLAY=\u003cunset\u003e DESKTOP_SESSION=\u003cunset\u003e XDG_SESSION_DESKTOP=\u003cunset\u003e XDG_CURRENT_DESKTOP=\u003cunset\u003e __GL_FSAA_MODE=\u003cunset\u003e __GL_LOG_MAX_ANISO=\u003cunset\u003e __GL_SYNC_TO_VBLANK=\u003cunset\u003e __GL_SORT_FBCONFIGS=\u003cunset\u003e __GL_YIELD=\u003cunset\u003e\n   0.006 Running in headless mode\n   0.011 Loading mod core 0.0.0 (data.lua)\n   0.048 Loading mod base 1.1.76 (data.lua)\n   0.237 Loading mod base 1.1.76 (data-updates.lua)\n   0.326 Checksum for core: 870127790\n   0.326 Checksum of base: 3065294274\n   0.550 Prototype list checksum: 3034860339\n   0.599 Info PlayerData.cpp:71: Local player-data.json available, timestamp 1673654910\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcube%2Ffactorio-docker-ssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzcube%2Ffactorio-docker-ssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcube%2Ffactorio-docker-ssh/lists"}