docs: rewrite README with structured overview and quick start guide

Replaces the minimal project description with a comprehensive README
including a component overview table, quick start instructions, common
Ansible operations, and links to detailed documentation. Aligns with
Red Panda Approval™ standards.
This commit is contained in:
2026-03-03 12:49:06 +00:00
parent c7be03a743
commit b4d60f2f38
219 changed files with 34586 additions and 2 deletions

76
ansible/argos/deploy.yml Normal file
View File

@@ -0,0 +1,76 @@
---
- name: Deploy Argos MCP Server
hosts: ubuntu
handlers:
- name: restart argos
become: true
community.docker.docker_compose_v2:
project_src: "{{argos_directory}}"
state: restarted
tasks:
- name: Check if host has argos service
ansible.builtin.set_fact:
has_argos_service: "{{ 'argos' in services | default([]) }}"
- name: Skip hosts without argos service
ansible.builtin.meta: end_host
when: not has_argos_service
- name: Create argos group
become: true
ansible.builtin.group:
name: "{{argos_group}}"
state: present
- name: Create argos user
become: true
ansible.builtin.user:
name: "{{argos_user}}"
group: "{{argos_group}}"
system: true
create_home: false
- name: Add ansible user to argos group
become: true
ansible.builtin.user:
name: "{{ansible_user}}"
groups: "{{argos_group}}"
append: true
- name: Create argos directory
become: true
ansible.builtin.file:
path: "{{argos_directory}}"
owner: "{{argos_user}}"
group: "{{argos_group}}"
state: directory
mode: '750'
- name: Transfer and unarchive git archive
become: true
ansible.builtin.unarchive:
src: "~/rel/argos_{{argos_rel}}.tar"
dest: "{{argos_directory}}"
owner: "{{argos_user}}"
group: "{{argos_group}}"
mode: '550'
- name: Template docker-compose.yml
become: true
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{argos_directory}}/docker-compose.yml"
owner: "{{argos_user}}"
group: "{{argos_group}}"
mode: '550'
notify: restart argos
- name: Start argos with docker-compose
become: true
community.docker.docker_compose_v2:
project_src: "{{argos_directory}}"
state: present
pull: always

View File

@@ -0,0 +1,44 @@
services:
argos-searxng:
build: .
depends_on:
- kvdb
environment:
- ARGOS_PORT=8000
- ARGOS_HOST=0.0.0.0
- ARGOS_SEARXNG_INSTANCES={{argos_searxng_instances}}
- ARGOS_MEMCACHED_HOST=kvdb
- ARGOS_MEMCACHED_PORT=11211
- ARGOS_CACHE_TTL={{argos_cache_ttl}}
- ARGOS_MAX_RESULTS_DEFAULT={{argos_max_results}}
- ARGOS_REQUEST_TIMEOUT=30.0
- ARGOS_HEALTH_CHECK_TIMEOUT=5.0
- ARGOS_LOG_LEVEL={{argos_log_level}}
- ARGOS_ENABLE_STARTUP_HEALTH_CHECK=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/live"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: syslog
options:
syslog-address: "tcp://127.0.0.1:{{argos_syslog_port}}"
syslog-format: "{{syslog_format}}"
tag: "athena-kvdb"
ports:
- {{argos_port}}:8000
restart: unless-stopped
kvdb:
image: memcached:1.6-trixie
pull_policy: always
command: memcached -m 128 -I 10m
logging:
driver: syslog
options:
syslog-address: "tcp://127.0.0.1:{{argos_syslog_port}}"
syslog-format: "{{syslog_format}}"
tag: "argos-kvdb"
restart: unless-stopped

32
ansible/argos/remove.yml Normal file
View File

@@ -0,0 +1,32 @@
---
- name: Remove Argos from Dev Environment
hosts: ubuntu
become: true
tasks:
- name: Check if host has argos service
ansible.builtin.set_fact:
has_argos_service: "{{ 'argos' in services | default([]) }}"
- name: Skip hosts without argos service
ansible.builtin.meta: end_host
when: not has_argos_service
- name: Stop and remove Docker containers, volumes, and images
community.docker.docker_compose_v2:
project_src: "{{argos_directory}}"
state: absent
remove_images: all
remove_volumes: true
- name: Prune Docker images
ansible.builtin.docker_prune:
images: true
images_filters:
dangling: false
- name: Remove Argos directory
become: true
ansible.builtin.file:
path: "{{argos_directory}}"
state: absent

34
ansible/argos/stage.yml Normal file
View File

@@ -0,0 +1,34 @@
---
- name: Stage Argos release tarball
hosts: localhost
gather_facts: false
vars:
argos_repo_dir: "{{repo_dir}}/argos"
archive_path: "{{rel_dir}}/argos_{{argos_rel}}.tar"
tasks:
- name: Ensure release directory exists
file:
path: "{{rel_dir}}"
state: directory
mode: '755'
- name: Fetch all remote branches and tags
ansible.builtin.command: git fetch --all
args:
chdir: "{{argos_repo_dir}}"
- name: Git pull
ansible.builtin.command: git pull
args:
chdir: "{{argos_repo_dir}}"
- name: Checkout specified argos release branch or tag
ansible.builtin.command: git checkout "{{argos_rel}}"
args:
chdir: "{{argos_repo_dir}}"
- name: Create argos archive for specified release
ansible.builtin.command: git archive -o "{{archive_path}}" "{{argos_rel}}"
args:
chdir: "{{argos_repo_dir}}"