From c5ff9c8118496b464e8038c2334de1b13954f886 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sat, 7 Dec 2024 08:28:54 +0100 Subject: [PATCH 01/28] mongodb and postgres upgrade --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2b39d4c..e94db0a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: mongo: container_name: chubbyphp-mongo hostname: mongo - image: mongo:6.0 + image: mongo:7.0 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 6RHL8hKl2XmqKTmxeXOS @@ -40,7 +40,7 @@ services: postgres: container_name: chubbyphp-postgres hostname: postgres - image: postgres:16 + image: postgres:17 command: -c log_statement=all -c log_error_verbosity=VERBOSE environment: POSTGRES_USER: root From b33d7f7c27681105febfbb6831fc0f0de6b2ca4a Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Tue, 21 Jan 2025 06:46:49 +0100 Subject: [PATCH 02/28] change year from 2024 to 2025 --- LICENSE | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index f71a527..7ff164f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2024 Dominik Zogg +Copyright (c) 2025 Dominik Zogg Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 45b07bc..980d41f 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ ## Copyright -2024 Dominik Zogg +2025 Dominik Zogg From e8a3af61aeb434aa0cfb17cdd5dfc6e1355391b8 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Fri, 28 Feb 2025 13:27:57 +0100 Subject: [PATCH 03/28] install php redis extension --- docker/php/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 3f96e6a..1838d86 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -24,6 +24,7 @@ RUN dnf install -y --nobest \ php83-php-pecl-memcached \ php83-php-pecl-mongodb \ php83-php-pecl-pcov \ + php84-php-pecl-redis \ php83-php-pecl-swoole5 \ php83-php-pecl-xdebug3 \ php83-php-pecl-zip \ From 69b92061f255208f289e8cf90aa2750fea556233 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Thu, 20 Mar 2025 06:44:27 +0100 Subject: [PATCH 04/28] update mongodb --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e94db0a..556cdaa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: mongo: container_name: chubbyphp-mongo hostname: mongo - image: mongo:7.0 + image: mongo:8.0.4 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 6RHL8hKl2XmqKTmxeXOS From 3788709157cfc5c1ae161fa33da7d0f5e3f43e10 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Fri, 15 Aug 2025 21:06:11 +0200 Subject: [PATCH 05/28] rockylinux 10 --- docker/php/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 1838d86..433fb59 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -1,13 +1,12 @@ -FROM rockylinux/rockylinux:9.5 +FROM rockylinux/rockylinux:10.0 SHELL ["/bin/bash", "-c"] RUN dnf upgrade -y --refresh -RUN dnf install -y epel-release https://rpms.remirepo.net/enterprise/remi-release-9.rpm +RUN dnf install -y epel-release https://rpms.remirepo.net/enterprise/remi-release-10.rpm RUN dnf install -y --nobest \ - compat-openssl11 \ git \ glibc-langpack-de \ langpacks-de \ From 448c1a7f2d7a2316c54ba60aef0fd69671c04758 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Fri, 15 Aug 2025 21:14:14 +0200 Subject: [PATCH 06/28] update mongodb --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 556cdaa..7e70e73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: mongo: container_name: chubbyphp-mongo hostname: mongo - image: mongo:8.0.4 + image: mongo:8 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 6RHL8hKl2XmqKTmxeXOS From 7971e403b944482c6453bb000863fb73564dc405 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Fri, 28 Nov 2025 08:58:23 +0100 Subject: [PATCH 07/28] swoole 5 => swoole 6 --- docker/php/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 433fb59..ac79678 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -24,7 +24,7 @@ RUN dnf install -y --nobest \ php83-php-pecl-mongodb \ php83-php-pecl-pcov \ php84-php-pecl-redis \ - php83-php-pecl-swoole5 \ + php83-php-pecl-swoole6 \ php83-php-pecl-xdebug3 \ php83-php-pecl-zip \ php83-php-pgsql \ From ac09f3f83e92d438143f2934b7b5ce5314be2096 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sat, 10 Jan 2026 16:20:28 +0100 Subject: [PATCH 08/28] add opencode --- docker/php/Dockerfile | 4 ++++ docker/php/files/home/php/.sharedrc | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index ac79678..cb1b7c7 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -60,6 +60,10 @@ RUN groupadd -g ${GROUP_ID} php \ USER php +WORKDIR /home/php + +RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path + WORKDIR /app CMD /usr/bin/supervisord diff --git a/docker/php/files/home/php/.sharedrc b/docker/php/files/home/php/.sharedrc index 9acaf8b..67ecd90 100644 --- a/docker/php/files/home/php/.sharedrc +++ b/docker/php/files/home/php/.sharedrc @@ -1,4 +1,6 @@ -# history +# opencode +export PATH=$HOME/.opencode/bin:$PATH + export HISTSIZE=5000 export SAVEHIST=100000 From c31e163ec8d3f1f57427ff90f111f3927f0f6c76 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 11:59:20 +0100 Subject: [PATCH 09/28] explain what needs to be done first --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 980d41f..3a2de43 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,28 @@ # docker +## setup on host + +### bash + +```sh +touch ~/.bash_docker +touch ~/.bash_history +``` + +### git + +```sh +touch ~/.gitconfig +touch ~/.gitignore +``` + +### zsh + +```sh +touch ~/.zsh_docker +touch ~/.zsh_history +``` + ## Copyright 2025 Dominik Zogg From 4d70eeaa9cd5e7c3cee8c7408fc37561fd061947 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 11:59:32 +0100 Subject: [PATCH 10/28] 2025 => 2026 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3a2de43..5e3448a 100644 --- a/README.md +++ b/README.md @@ -25,4 +25,4 @@ touch ~/.zsh_history ## Copyright -2025 Dominik Zogg +2026 Dominik Zogg From 314371f855cc0535b0b1c71fa2a6fe23c7d7834a Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 11:59:40 +0100 Subject: [PATCH 11/28] opencode auth sharing --- README.md | 7 +++++++ docker-compose.yml | 1 + 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index 5e3448a..c922e4f 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,13 @@ touch ~/.gitconfig touch ~/.gitignore ``` +### opencode + +```sh +mkdir -p ~/.local/share/opencode +[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json +``` + ### zsh ```sh diff --git a/docker-compose.yml b/docker-compose.yml index 7e70e73..7fc5e0b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,7 @@ services: - ~/.bash_history:/home/php/.bash_history - ~/.gitconfig:/home/php/.gitconfig - ~/.gitignore:/home/php/.gitignore + - ~/.local/share/opencode/auth.json:/home/node/.local/share/opencode/auth.json - ~/.zsh_docker:/home/php/.zsh_docker - ~/.zsh_history:/home/php/.zsh_history - $SSH_AUTH_SOCK:/ssh-agent From 2c6ca14e74b0729396d5a4b0c965bbb02c3284f0 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 12:31:14 +0100 Subject: [PATCH 12/28] create folder for the mound point, so its not owned by root --- docker/php/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index cb1b7c7..a5d5612 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -62,7 +62,7 @@ USER php WORKDIR /home/php -RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path +RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path && mkdir -p "$HOME/.local/share/opencode" WORKDIR /app From 51b212ab97db60100add8108a91ec789ece38008 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 12:39:08 +0100 Subject: [PATCH 13/28] fix username in path --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7fc5e0b..5dd38fd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,7 +18,7 @@ services: - ~/.bash_history:/home/php/.bash_history - ~/.gitconfig:/home/php/.gitconfig - ~/.gitignore:/home/php/.gitignore - - ~/.local/share/opencode/auth.json:/home/node/.local/share/opencode/auth.json + - ~/.local/share/opencode/auth.json:/home/php/.local/share/opencode/auth.json - ~/.zsh_docker:/home/php/.zsh_docker - ~/.zsh_history:/home/php/.zsh_history - $SSH_AUTH_SOCK:/ssh-agent From 348e252960c0c51ec6854dab1b153ab2891cbd63 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 11 Jan 2026 16:49:36 +0100 Subject: [PATCH 14/28] Make sure the github public ssh gets mounted --- README.md | 7 +++++++ docker-compose.yml | 1 + 2 files changed, 8 insertions(+) diff --git a/README.md b/README.md index c922e4f..338ed11 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,13 @@ mkdir -p ~/.local/share/opencode [ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json ``` +### ssh + +```sh +mkdir -p ~/.ssh +touch github.pub +``` + ### zsh ```sh diff --git a/docker-compose.yml b/docker-compose.yml index 5dd38fd..f3dabbb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,7 @@ services: - ~/.gitconfig:/home/php/.gitconfig - ~/.gitignore:/home/php/.gitignore - ~/.local/share/opencode/auth.json:/home/php/.local/share/opencode/auth.json + - ~/.ssh/github.pub:/home/php/.ssh/github.pub - ~/.zsh_docker:/home/php/.zsh_docker - ~/.zsh_history:/home/php/.zsh_history - $SSH_AUTH_SOCK:/ssh-agent From 01238ccccded38be82880c15b16d2a787eea0d07 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Mon, 12 Jan 2026 20:48:57 +0100 Subject: [PATCH 15/28] update year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 7ff164f..f841fcc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2025 Dominik Zogg +Copyright (c) 2026 Dominik Zogg Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 44ccef664a80049aa68e5f73e142e8c661242afe Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Wed, 21 Jan 2026 19:59:55 +0100 Subject: [PATCH 16/28] fix hostname --- docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f3dabbb..01aa9fc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: php: container_name: chubbyphp-php - hostname: php + hostname: chubbyphp-php build: dockerfile: ./docker/php/Dockerfile context: ./ @@ -30,7 +30,7 @@ services: - "host.docker.internal:host-gateway" mongo: container_name: chubbyphp-mongo - hostname: mongo + hostname: chubbyphp-mongo image: mongo:8 environment: MONGO_INITDB_ROOT_USERNAME: root @@ -41,7 +41,7 @@ services: - mongo:/data/db postgres: container_name: chubbyphp-postgres - hostname: postgres + hostname: chubbyphp-postgres image: postgres:17 command: -c log_statement=all -c log_error_verbosity=VERBOSE environment: @@ -53,7 +53,7 @@ services: - postgres:/var/lib/postgresql/data nginx: container_name: chubbyphp-nginx - hostname: nginx + hostname: chubbyphp-nginx image: nginx ports: - '443:443' From 6a7eba6253120f0375dea93f6d9477556eea85ea Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Wed, 21 Jan 2026 20:08:55 +0100 Subject: [PATCH 17/28] define name --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 01aa9fc..7ddb51f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,4 @@ +name: chubbyphp services: php: container_name: chubbyphp-php From dda53866c1c02d4da03e608037fd4f4f7120a617 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sat, 31 Jan 2026 17:23:03 +0100 Subject: [PATCH 18/28] add empty .ssh/known_hosts --- docker/php/files/home/php/.ssh/known_hosts | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docker/php/files/home/php/.ssh/known_hosts diff --git a/docker/php/files/home/php/.ssh/known_hosts b/docker/php/files/home/php/.ssh/known_hosts new file mode 100644 index 0000000..e69de29 From bf529ce08236563d11c97866142cba2c64287b85 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Wed, 11 Feb 2026 09:31:02 +0100 Subject: [PATCH 19/28] fix touch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 338ed11..edfbdd6 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ mkdir -p ~/.local/share/opencode ```sh mkdir -p ~/.ssh -touch github.pub +touch ~/.ssh/github.pub ``` ### zsh From 76cb9a4c62285d9551bc71d906ee7f391bd867c7 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sun, 19 Apr 2026 12:52:36 +0200 Subject: [PATCH 20/28] add restart to mongo container as mentioned in the readme on dockerhub --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 7ddb51f..f296283 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,6 +33,7 @@ services: container_name: chubbyphp-mongo hostname: chubbyphp-mongo image: mongo:8 + restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 6RHL8hKl2XmqKTmxeXOS From 7e9a19b77bb1e7f2155867e0c5af007cdd9fb78d Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Mon, 20 Apr 2026 20:45:51 +0200 Subject: [PATCH 21/28] mount opencode tui.json --- README.md | 2 ++ docker-compose.yml | 1 + 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index edfbdd6..5ca9553 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ touch ~/.gitignore ### opencode ```sh +mkdir -p ~/.config/opencode +[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.config/opencode/tui.json mkdir -p ~/.local/share/opencode [ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json ``` diff --git a/docker-compose.yml b/docker-compose.yml index f296283..55df768 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,7 @@ services: - ~/.bash_history:/home/php/.bash_history - ~/.gitconfig:/home/php/.gitconfig - ~/.gitignore:/home/php/.gitignore + - ~/.config/opencode/tui.json:/home/php/.config/opencode/tui.json - ~/.local/share/opencode/auth.json:/home/php/.local/share/opencode/auth.json - ~/.ssh/github.pub:/home/php/.ssh/github.pub - ~/.zsh_docker:/home/php/.zsh_docker From f8998af400a58c9c6fd3d94e08facf4999e1326f Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Fri, 24 Apr 2026 20:59:16 +0200 Subject: [PATCH 22/28] add gd, amqp, rdkafka extensions --- docker/php/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index a5d5612..fc1ddd2 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -16,14 +16,17 @@ RUN dnf install -y --nobest \ php83-php-cli \ php83-php-devel \ php83-php-fpm \ + php83-php-gd \ php83-php-intl \ php83-php-mbstring \ php83-php-opcache \ + php83-php-pecl-amqp \ php83-php-pecl-apcu \ php83-php-pecl-memcached \ php83-php-pecl-mongodb \ php83-php-pecl-pcov \ - php84-php-pecl-redis \ + php83-php-pecl-rdkafka6 \ + php83-php-pecl-redis \ php83-php-pecl-swoole6 \ php83-php-pecl-xdebug3 \ php83-php-pecl-zip \ From 220fe33b2183090905308f6664a389e1d8bae0c5 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Thu, 30 Apr 2026 20:03:00 +0200 Subject: [PATCH 23/28] Stay at 8.0.4 cause every newer version is broken for modern linux. --- docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 55df768..872ae77 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,8 +33,7 @@ services: mongo: container_name: chubbyphp-mongo hostname: chubbyphp-mongo - image: mongo:8 - restart: always + image: mongo:8.0.4 # check before upgrade https://www.mongodb.com/community/forums/t/mongodb-8-x-and-linux-kernel-6-19/337547 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: 6RHL8hKl2XmqKTmxeXOS From cbe753c6a3503599d15293005aad3b47341b940a Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Tue, 5 May 2026 20:22:41 +0200 Subject: [PATCH 24/28] podman rootless support --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 872ae77..e376a22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: args: USER_ID: ${USER_ID:-1000} GROUP_ID: ${GROUP_ID:-1000} + userns_mode: keep-id environment: MONGODB_URI: mongodb://root:6RHL8hKl2XmqKTmxeXOS@mongo:27017/?authSource=admin POSTGRES_URL: pgsql://root:82fJ1z90aeRFAAhHTM1s@postgres:5432?charset=utf8 From 65aae71ea04736d26daf0635f006a9bc5d88a6da Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Wed, 13 May 2026 20:39:34 +0200 Subject: [PATCH 25/28] create both opencode directories before mount stuff --- docker/php/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index fc1ddd2..340e878 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -65,7 +65,9 @@ USER php WORKDIR /home/php -RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path && mkdir -p "$HOME/.local/share/opencode" +RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path \ + && mkdir -p "$HOME/.config/opencode" \ + && mkdir -p "$HOME/.local/share/opencode" WORKDIR /app From 80d076b1833ada48814fe87b6131cf2c2dd3af8a Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Thu, 14 May 2026 21:24:55 +0200 Subject: [PATCH 26/28] use npm to install opencode --- README.md | 24 ++++++++++++------------ docker-compose.yml | 13 +++++++++---- docker/php/Dockerfile | 11 ++++++++++- docker/php/files/home/php/.bashrc | 7 ++++--- docker/php/files/home/php/.sharedrc | 4 ++-- docker/php/files/home/php/.zshrc | 6 ++++-- 6 files changed, 41 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 5ca9553..e905c6e 100644 --- a/README.md +++ b/README.md @@ -9,34 +9,34 @@ touch ~/.bash_docker touch ~/.bash_history ``` -### git +### zsh ```sh -touch ~/.gitconfig -touch ~/.gitignore +touch ~/.zsh_docker +touch ~/.zsh_history ``` -### opencode +### git ```sh -mkdir -p ~/.config/opencode -[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.config/opencode/tui.json -mkdir -p ~/.local/share/opencode -[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json +touch ~/.gitconfig +touch ~/.gitignore ``` ### ssh ```sh mkdir -p ~/.ssh -touch ~/.ssh/github.pub +touch github.pub ``` -### zsh +### opencode - coding agent ```sh -touch ~/.zsh_docker -touch ~/.zsh_history +mkdir -p ~/.config/opencode +[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.config/opencode/tui.json +mkdir -p ~/.local/share/opencode +[ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json ``` ## Copyright diff --git a/docker-compose.yml b/docker-compose.yml index e376a22..0bb46f8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,16 +16,21 @@ services: SSH_AUTH_SOCK: /ssh-agent volumes: - ${PWD}/..:/app + - $SSH_AUTH_SOCK:/ssh-agent + # bash - ~/.bash_docker:/home/php/.bash_docker - ~/.bash_history:/home/php/.bash_history + # zsh + - ~/.zsh_docker:/home/php/.zsh_docker + - ~/.zsh_history:/home/php/.zsh_history + # git - ~/.gitconfig:/home/php/.gitconfig - ~/.gitignore:/home/php/.gitignore + # ssh + - ~/.ssh/github.pub:/home/php/.ssh/github.pub + # opencode - coding agent - ~/.config/opencode/tui.json:/home/php/.config/opencode/tui.json - ~/.local/share/opencode/auth.json:/home/php/.local/share/opencode/auth.json - - ~/.ssh/github.pub:/home/php/.ssh/github.pub - - ~/.zsh_docker:/home/php/.zsh_docker - - ~/.zsh_history:/home/php/.zsh_history - - $SSH_AUTH_SOCK:/ssh-agent depends_on: - mongo - postgres diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 340e878..b2cc2b7 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -10,6 +10,7 @@ RUN dnf install -y --nobest \ git \ glibc-langpack-de \ langpacks-de \ + libatomic \ nmap-ncat \ php83-php-ast \ php83-php-bcmath \ @@ -65,7 +66,15 @@ USER php WORKDIR /home/php -RUN curl -fsSL https://opencode.ai/install | bash -s -- --no-modify-path \ +RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$HOME/.fnm" --skip-shell \ + && source ~/.bashrc \ + && fnm install 24 \ + && fnm default 24 \ + && fnm use 24 \ + && npm install -g corepack@latest + +RUN source ~/.bashrc \ + && npm install -g opencode-ai@latest \ && mkdir -p "$HOME/.config/opencode" \ && mkdir -p "$HOME/.local/share/opencode" diff --git a/docker/php/files/home/php/.bashrc b/docker/php/files/home/php/.bashrc index e9b864f..bdc55a8 100644 --- a/docker/php/files/home/php/.bashrc +++ b/docker/php/files/home/php/.bashrc @@ -1,3 +1,7 @@ +source $HOME/.sharedrc + +eval "$(fnm env --shell=bash --use-on-cd)" + export CLICOLOR='true' export PS1='\[\e[1;32m\]\h\[\e[0m\] \[\e[1;37m\]\w\[\e[0m\] \[\e[3m\]($(git rev-parse --abbrev-ref HEAD 2> /dev/null))\[\e[23m\] \[\e[1;32m\]\u\[\e[0m\] ' @@ -6,9 +10,6 @@ export HISTCONTROL='ignoreboth:erasedups' export HISTFILE=~/.bash_history export PROMPT_COMMAND='history -a' -source $HOME/.sharedrc - if [ -f "$HOME/.bash_docker" ]; then source $HOME/.bash_docker fi - diff --git a/docker/php/files/home/php/.sharedrc b/docker/php/files/home/php/.sharedrc index 67ecd90..119f808 100644 --- a/docker/php/files/home/php/.sharedrc +++ b/docker/php/files/home/php/.sharedrc @@ -1,5 +1,5 @@ -# opencode -export PATH=$HOME/.opencode/bin:$PATH +# fnm +export PATH=$HOME/.fnm:$PATH export HISTSIZE=5000 export SAVEHIST=100000 diff --git a/docker/php/files/home/php/.zshrc b/docker/php/files/home/php/.zshrc index fb02211..5b08240 100644 --- a/docker/php/files/home/php/.zshrc +++ b/docker/php/files/home/php/.zshrc @@ -1,3 +1,7 @@ +source $HOME/.sharedrc + +eval "$(fnm env --shell=zsh --use-on-cd)" + autoload colors && colors setopt PROMPT_SUBST export PROMPT='%{$fg_bold[green]%}%m%{$reset_color%} %{$fg_bold[white]%}%~%{$reset_color%} ($(git symbolic-ref --short HEAD 2> /dev/null)) %{$fg_bold[green]%}%n%{$reset_color%} % ' @@ -10,8 +14,6 @@ setopt inc_append_history export HISTFILE=~/.zsh_history -source $HOME/.sharedrc - if [ -f "$HOME/.zsh_docker" ]; then source $HOME/.zsh_docker fi From 79d05699135d3a36b6da02b11cbf574f2b3abf76 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Thu, 14 May 2026 21:25:55 +0200 Subject: [PATCH 27/28] add pi - coding agent --- README.md | 7 +++++++ docker-compose.yml | 2 ++ docker/php/Dockerfile | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/README.md b/README.md index e905c6e..22cded6 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,13 @@ mkdir -p ~/.local/share/opencode [ ! -f ~/.local/share/opencode/auth.json ] && echo '{}' > ~/.local/share/opencode/auth.json ``` +### pi - coding agent + +```sh +mkdir -p ~/.pi/agent +[ ! -f ~/.pi/agent/auth.json ] && echo '{}' > ~/.pi/agent/auth.json +``` + ## Copyright 2026 Dominik Zogg diff --git a/docker-compose.yml b/docker-compose.yml index 0bb46f8..51a2e6c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,8 @@ services: # opencode - coding agent - ~/.config/opencode/tui.json:/home/php/.config/opencode/tui.json - ~/.local/share/opencode/auth.json:/home/php/.local/share/opencode/auth.json + # pi + - ~/.pi/agent/auth.json:/home/php/.pi/agent/auth.json depends_on: - mongo - postgres diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index b2cc2b7..7ad9fda 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -78,6 +78,10 @@ RUN source ~/.bashrc \ && mkdir -p "$HOME/.config/opencode" \ && mkdir -p "$HOME/.local/share/opencode" +RUN source ~/.bashrc \ + && npm install -g @earendil-works/pi-coding-agent \ + && mkdir -p "$HOME/.pi/agent" + WORKDIR /app CMD /usr/bin/supervisord From 76e2dd166b072cd1a272a88da34cbc95374ae2d7 Mon Sep 17 00:00:00 2001 From: Dominik Zogg Date: Sat, 6 Jun 2026 22:41:27 +0200 Subject: [PATCH 28/28] support reusing even existing groups (import to run on mac) --- docker/php/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 7ad9fda..6088ecb 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -57,7 +57,7 @@ COPY docker/php/files / ARG USER_ID ARG GROUP_ID -RUN groupadd -g ${GROUP_ID} php \ +RUN getent group ${GROUP_ID} >/dev/null || groupadd -g ${GROUP_ID} php \ && useradd -u ${USER_ID} -g ${GROUP_ID} -s /bin/bash -M php \ && chown -Rf php: /home/php \ && echo 'php ALL=(ALL) NOPASSWD: ALL' > '/etc/sudoers.d/php'