Add aicoder user with opencode, Claude Code, and tmux

Dedicated aicoder user for AI coding tools. OpenCode and Claude Code
installed per-user, service runs from ~/codeprojects. Also fixes
forgejo-shell and SSH passthrough ordering in playbook.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Nelis 2026-03-29 12:21:29 +00:00
parent 397d4fcc48
commit 72f691e25c

View file

@ -354,14 +354,44 @@
group: "{{ login_user }}"
mode: '0644'
# --- OpenCode ---
# --- OpenCode / Claude Code ---
- name: Install opencode
- name: Create aicoder user
ansible.builtin.user:
name: aicoder
shell: /bin/bash
home: /home/aicoder
create_home: yes
- name: Create codeprojects directory
ansible.builtin.file:
path: /home/aicoder/codeprojects
state: directory
owner: aicoder
group: aicoder
mode: '0755'
- name: Install tmux
ansible.builtin.apt:
name: tmux
state: present
- name: Install opencode for aicoder
ansible.builtin.shell:
cmd: curl -fsSL https://opencode.ai/install | bash
args:
creates: /home/{{ login_user }}/.opencode/bin/opencode
become_user: "{{ login_user }}"
creates: /home/aicoder/.opencode/bin/opencode
become_user: aicoder
- name: Install Claude Code for aicoder
ansible.builtin.shell:
cmd: npm install -g @anthropic-ai/claude-code
args:
creates: /home/aicoder/.npm-global/lib/node_modules/@anthropic-ai/claude-code
become_user: aicoder
environment:
NPM_CONFIG_PREFIX: /home/aicoder/.npm-global
PATH: "/home/aicoder/.npm-global/bin:{{ ansible_env.PATH }}"
- name: Create opencode systemd service
ansible.builtin.copy:
@ -374,9 +404,9 @@
[Service]
Type=simple
User={{ login_user }}
WorkingDirectory=/home/{{ login_user }}
ExecStart=/home/{{ login_user }}/.opencode/bin/opencode serve --port 3000 --hostname 0.0.0.0
User=aicoder
WorkingDirectory=/home/aicoder/codeprojects
ExecStart=/home/aicoder/.opencode/bin/opencode serve --port 3000 --hostname 0.0.0.0
Restart=on-failure
RestartSec=5