Compare commits

...

2 Commits

Author SHA1 Message Date
Lino Silva 0cc349765e feat: Trek compose files 2026-04-12 22:18:24 +01:00
Lino Silva 7ad7b26385 feat: Trek storage 2026-04-12 22:18:17 +01:00
5 changed files with 102 additions and 21 deletions
@@ -11,30 +11,12 @@ app_data_disks:
disk_id: scsi1
mount_point: /data/pocket-id
device: /dev/sdb
komodo:
vm: infra-core-1
vmid: 410
node: purah
size: "20"
storage: purah-mirror-860gb
disk_id: scsi2
mount_point: /data/komodo
device: /dev/sdc
komodo-periphery-media:
vm: media-1
vmid: 420
node: purah
size: "20"
storage: purah-mirror-860gb
disk_id: scsi1
mount_point: /data/komodo-periphery
device: /dev/sdb
komodo-periphery-apps:
trek:
vm: apps-1
vmid: 430
node: yunobo
size: "20"
size: "10"
storage: nvme-2tb
disk_id: scsi1
mount_point: /data/komodo-periphery
mount_point: /data/trek
device: /dev/sdb
+1
View File
@@ -31,3 +31,4 @@
- base
- docker
- komodo-periphery
- trek
+53
View File
@@ -0,0 +1,53 @@
---
- name: Add data disk to VM for trek
community.proxmox.proxmox_disk:
api_host: "{{ proxmox_api_host }}"
api_user: "{{ proxmox_api_user }}"
api_token_id: "{{ proxmox_api_token_id }}"
api_token_secret: "{{ proxmox_api_token_secret }}"
vmid: "{{ app_data_disks.trek.vmid }}"
disk: "{{ app_data_disks.trek.disk_id }}"
storage: "{{ app_data_disks.trek.storage }}"
size: "{{ app_data_disks.trek.size }}"
state: present
delegate_to: localhost
become: no
run_once: true
ignore_errors: yes
register: disk_result
- name: Display disk creation result
debug:
var: disk_result
- name: Wait for data disk to be available
wait_for:
path: "{{ app_data_disks.trek.device }}"
state: present
timeout: 30
- name: Check if data disk is formatted
command: "blkid {{ app_data_disks.trek.device }}"
register: disk_formatted
failed_when: false
changed_when: false
- name: Format data disk with ext4
filesystem:
fstype: ext4
dev: "{{ app_data_disks.trek.device }}"
when: disk_formatted.rc != 0
- name: Create trek data mount point
file:
path: "{{ app_data_disks.trek.mount_point }}"
state: directory
mode: "0755"
- name: Mount data disk
mount:
path: "{{ app_data_disks.trek.mount_point }}"
src: "{{ app_data_disks.trek.device }}"
fstype: ext4
state: mounted
opts: defaults
+2
View File
@@ -0,0 +1,2 @@
OIDC_CLIENT_SECRET=[[TREKCLIENTSECRET]]
ENCRYPTION_KEY=[[TREKENCRYPTIONKEY]]
+43
View File
@@ -0,0 +1,43 @@
services:
app:
image: mauriceboe/trek:latest
container_name: trek
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- CHOWN
- SETUID
- SETGID
tmpfs:
- /tmp:noexec,nosuid,size=64m
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- PORT=3000
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- TZ=Europe/Lisbon
- LOG_LEVEL=info
- ALLOWED_ORIGINS=https://trek.lino.cooking
- FORCE_HTTPS=true
- TRUST_PROXY=1
- ALLOW_INTERNAL_NETWORK=trur
- APP_URL=https://trek.lino.cooking
- OIDC_ISSUER=https://auth.lino.cooking
- OIDC_CLIENT_ID=652278a5-b695-4589-9d51-d23cfb2e15dd
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}
- OIDC_DISPLAY_NAME=PocketID
- OIDC_ONLY=true
volumes:
- /data/trek/app:/app/data
- /data/trek/uploads:/app/uploads
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s