diff --git a/.github/workflows/infra.yaml b/.github/workflows/infra.yaml index c32bc04..a739485 100644 --- a/.github/workflows/infra.yaml +++ b/.github/workflows/infra.yaml @@ -76,7 +76,6 @@ jobs: SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }} INFISICAL_ENCRYPTION_KEY: ${{ secrets.INFISICAL_ENCRYPTION_KEY }} INFISICAL_AUTH_SECRET: ${{ secrets.INFISICAL_AUTH_SECRET }} - INFISICAL_MONGO_PASSWORD: ${{ secrets.INFISICAL_MONGO_PASSWORD }} INFISICAL_TOKEN: ${{ secrets.INFISICAL_TOKEN }} INFISICAL_URL: https://secrets.koval.net run: ansible-playbook --inventory ./inventory ${{ steps.playbooks.outputs.to_run }} -vv diff --git a/infra/photos/immich/docker-compose.yml b/infra/photos/immich/docker-compose.yml index 6cbeda2..44cb498 100644 --- a/infra/photos/immich/docker-compose.yml +++ b/infra/photos/immich/docker-compose.yml @@ -48,7 +48,7 @@ services: database: container_name: immich_postgres - image: tensorchord/pgvecto-rs:pg14-v0.1.11 + image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 env_file: - .env environment: diff --git a/infra/secrets/0000_proxmox_playbook.yaml b/infra/secrets/0000_proxmox_playbook.yaml index bc77e4d..163b180 100644 --- a/infra/secrets/0000_proxmox_playbook.yaml +++ b/infra/secrets/0000_proxmox_playbook.yaml @@ -9,7 +9,7 @@ api_token_secret: "{{ lookup('ansible.builtin.env', 'PROXMOX_TOKEN_SECRET') }}" ssh_public: "{{ lookup('ansible.builtin.env', 'SSH_PUBLIC') }}" vmname: "{{ inventory_hostname | regex_replace('^([^\\.]+)\\..+$', '\\1') }}" - node: pve + node: pve2 module_defaults: community.general.proxmox_kvm: api_user: "{{ api_user }}" @@ -91,7 +91,6 @@ cores: 4 memory: 4096 cpu: x86-64-v3,flags=+spec-ctrl;+aes - - name: Retart VM community.general.proxmox_kvm: state: restarted diff --git a/infra/secrets/0002_docker_playbook.yaml b/infra/secrets/0002_docker_playbook.yaml index babe118..780638a 100644 --- a/infra/secrets/0002_docker_playbook.yaml +++ b/infra/secrets/0002_docker_playbook.yaml @@ -5,6 +5,7 @@ - name: Wait for connection ansible.builtin.wait_for_connection: timeout: 300 + - name: Install dependencies ansible.builtin.apt: update_cache: true diff --git a/infra/secrets/0003_infiscal_playbook.yaml b/infra/secrets/0003_infiscal_playbook.yaml index 899acc6..3c9b71c 100644 --- a/infra/secrets/0003_infiscal_playbook.yaml +++ b/infra/secrets/0003_infiscal_playbook.yaml @@ -16,7 +16,6 @@ src: "./{{ app }}" dest: "$HOME" mode: "0744" - - name: Replace Encryption Key secret ansible.builtin.replace: path: "$HOME/{{ app }}/.env" @@ -27,11 +26,6 @@ path: "$HOME/{{ app }}/.env" regexp: "AUTH_SECRET_VALUE" replace: "{{ lookup('ansible.builtin.env', 'INFISICAL_AUTH_SECRET') }}" - - name: Replace Mongo Password secret - ansible.builtin.replace: - path: "$HOME/{{ app }}/.env" - regexp: "MONGO_PASSWORD_VALUE" - replace: "{{ lookup('ansible.builtin.env', 'INFISICAL_MONGO_PASSWORD') }}" - name: Replace SMTP Password secret ansible.builtin.replace: path: "$HOME/{{ app }}/.env" diff --git a/infra/secrets/infisical/.env b/infra/secrets/infisical/.env index f91df1f..46fdc22 100644 --- a/infra/secrets/infisical/.env +++ b/infra/secrets/infisical/.env @@ -8,19 +8,17 @@ ENCRYPTION_KEY=ENCRYPTION_KEY_VALUE # THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION AUTH_SECRET=AUTH_SECRET_VALUE -# MongoDB -# Backend will connect to the MongoDB instance at connection string MONGO_URL which can either be a ref -# to the MongoDB container instance or Mongo Cloud +# Postgres creds +POSTGRES_PASSWORD=infisical +POSTGRES_USER=infisical +POSTGRES_DB=infisical + # Required -MONGO_URL=mongodb://root:MONGO_PASSWORD_VALUE@mongo:27017/?authSource=admin +DB_CONNECTION_URI=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} # Redis REDIS_URL=redis://redis:6379 -# Optional credentials for MongoDB container instance and Mongo-Express -MONGO_USERNAME=root -MONGO_PASSWORD=MONGO_PASSWORD_VALUE - # Website URL # Required SITE_URL=https://secrets.koval.net @@ -70,4 +68,4 @@ CLIENT_SECRET_GITLAB_LOGIN= # Other INVITE_ONLY_SIGNUP=true -TELEMETRY_ENABLED=false \ No newline at end of file +TELEMETRY_ENABLED=false diff --git a/infra/secrets/infisical/docker-compose.yml b/infra/secrets/infisical/docker-compose.yml index de38fa6..973d10b 100644 --- a/infra/secrets/infisical/docker-compose.yml +++ b/infra/secrets/infisical/docker-compose.yml @@ -1,11 +1,26 @@ version: "3" services: + db-migration: + depends_on: + db: + condition: service_healthy + image: infisical/infisical:latest-postgres + env_file: .env + command: npm run migration:latest + pull_policy: always + backend: restart: unless-stopped depends_on: - - mongo - image: infisical/infisical:latest + db: + condition: service_healthy + redis: + condition: service_started + db-migration: + condition: service_completed_successfully + image: infisical/infisical:latest-postgres + pull_policy: always env_file: .env ports: - 80:8080 @@ -20,14 +35,16 @@ services: ports: - 6379:6379 volumes: - - /mnt/nvme/redis-data:/data + - /mnt/nvme/redis_data:/data - mongo: - image: mongo + db: + image: postgres:14-alpine restart: always env_file: .env - environment: - - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} - - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} volumes: - - /mnt/nvme/mongo-data:/data/db + - /mnt/nvme/pg_data:/var/lib/postgresql/data + healthcheck: + test: "pg_isready --username=${POSTGRES_USER} && psql --username=${POSTGRES_USER} --list" + interval: 5s + timeout: 10s + retries: 10 diff --git a/requirements.txt b/requirements.txt index 35aae9b..e6d850b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ ansible proxmoxer requests -infisical +infisical==1.5.0