Set up devpi-server as a transparent PyPI caching proxy on indri, accessible via Tailscale at pypi.tail8d86e.ts.net. - Add ansible role with LaunchAgent (KeepAlive service via mise x) - Add health checks to indri-services-check script - Configure to listen on port 3141, data stored in ~/devpi Note: Manual setup required on indri before provisioning: 1. Add devpi packages to ~/.config/mise/config.toml 2. Run mise install && mise x -- devpi-init --serverdir ~/devpi 3. Set up Tailscale service after ansible provisioning Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
34 lines
1.1 KiB
YAML
34 lines
1.1 KiB
YAML
---
|
|
# Note: devpi is installed via mise (pipx/uvx), not managed here.
|
|
# Add to ~/.config/mise/config.toml on indri:
|
|
#
|
|
# [tools]
|
|
# "pipx:devpi-server" = { version = "latest", uvx = "true", uvx_args = "--with devpi-web" }
|
|
# "pipx:devpi-client" = { version = "latest", uvx = "true" }
|
|
#
|
|
# Then run: mise install
|
|
# Initialize: mise x -- devpi-init --serverdir {{ devpi_serverdir }}
|
|
|
|
- name: Ensure devpi data directory exists
|
|
ansible.builtin.file:
|
|
path: "{{ devpi_serverdir }}"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Deploy devpi LaunchAgent plist
|
|
ansible.builtin.template:
|
|
src: devpi.plist.j2
|
|
dest: ~/Library/LaunchAgents/mcquack.eblume.devpi.plist
|
|
mode: '0644'
|
|
notify: reload devpi
|
|
|
|
- name: Check if devpi LaunchAgent is loaded
|
|
ansible.builtin.command: launchctl list mcquack.eblume.devpi
|
|
register: launchctl_check
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Load devpi LaunchAgent if not loaded
|
|
ansible.builtin.command: launchctl load ~/Library/LaunchAgents/mcquack.eblume.devpi.plist
|
|
when: launchctl_check.rc != 0
|
|
failed_when: false
|