Initial commit after Claude implementation

This commit is contained in:
Ian Roddis
2026-03-23 14:29:32 -03:00
commit 5920d3fd7a
62 changed files with 1847 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
---
minio_data_dir: "{{ sovereign_base_dir }}/minio"
+6
View File
@@ -0,0 +1,6 @@
---
- name: restart minio
community.docker.docker_compose_v2:
project_src: "{{ minio_data_dir }}"
state: present
recreate: always
+40
View File
@@ -0,0 +1,40 @@
---
- name: Create MinIO directories
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: '0755'
loop:
- "{{ minio_data_dir }}"
- "{{ minio_data_dir }}/data"
- name: Deploy MinIO docker-compose
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ minio_data_dir }}/docker-compose.yml"
mode: '0644'
notify: restart minio
- name: Start MinIO
community.docker.docker_compose_v2:
project_src: "{{ minio_data_dir }}"
state: present
- name: Wait for MinIO to be ready
ansible.builtin.uri:
url: "http://localhost:9010/minio/health/live"
method: GET
status_code: 200
register: result
until: result.status == 200
retries: 15
delay: 5
- name: Create Nextcloud bucket in MinIO
community.general.minio:
endpoint: "http://localhost:9010"
access_key: "{{ minio_root_user }}"
secret_key: "{{ minio_root_password }}"
name: "{{ minio_nextcloud_bucket }}"
state: present
ignore_errors: true
@@ -0,0 +1,42 @@
services:
minio:
image: quay.io/minio/minio:{{ minio_version }}
container_name: minio
restart: unless-stopped
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: "{{ minio_root_user }}"
MINIO_ROOT_PASSWORD: "{{ minio_root_password }}"
MINIO_BROWSER_REDIRECT_URL: "https://{{ minio_console_domain }}"
MINIO_IDENTITY_OPENID_CONFIG_URL: "https://{{ authentik_domain }}/application/o/minio/.well-known/openid-configuration"
MINIO_IDENTITY_OPENID_CLIENT_ID: "minio"
MINIO_IDENTITY_OPENID_CLIENT_SECRET: "changeme_minio_oidc_secret"
MINIO_IDENTITY_OPENID_CLAIM_NAME: "policy"
MINIO_IDENTITY_OPENID_REDIRECT_URI: "https://{{ minio_console_domain }}/oauth_callback"
ports:
- "127.0.0.1:9010:9000"
volumes:
- {{ minio_data_dir }}/data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.minio-api.rule=Host(`{{ minio_domain }}`)"
- "traefik.http.routers.minio-api.tls=true"
- "traefik.http.routers.minio-api.tls.certresolver=letsencrypt"
- "traefik.http.routers.minio-api.service=minio-api"
- "traefik.http.services.minio-api.loadbalancer.server.port=9000"
- "traefik.http.routers.minio-console.rule=Host(`{{ minio_console_domain }}`)"
- "traefik.http.routers.minio-console.tls=true"
- "traefik.http.routers.minio-console.tls.certresolver=letsencrypt"
- "traefik.http.routers.minio-console.service=minio-console"
- "traefik.http.services.minio-console.loadbalancer.server.port=9001"
networks:
- {{ sovereign_network_name }}
logging:
driver: gelf
options:
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
tag: "minio"
networks:
{{ sovereign_network_name }}:
external: true