diff --git a/docker-compose.yml b/docker-compose.yml index 474dfb1..025434a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,10 +3,11 @@ # Here I will include all "child" docker compose files that I need. # The paths can relative to this file or absolue. I've used INCLUDE_PATH variable to make it more cofigurable. -# Whenever I need to remove some service then I can comment out the lines here. +# Whenever I need to remove some service then I can comment out the lines here. include: - path: - ${DB_PATH}/adminer/adminer.yml + - ${DB_PATH}/databasus/databasus.yml - ${DB_PATH}/lldap/lldap.yml - ${DB_PATH}/mariadb/mariadb.yml - ${DB_PATH}/postgres/postgres.yml @@ -77,7 +78,7 @@ networks: enable_ipv6: true ipam: driver: default - # config: + # config: # # - subnet: "2a04:ee41:86:9397::/64" # - subnet: "2001:db8:2:/64" # - gateway: "2001:db8:2::1" diff --git a/project/db/databasus/databasus.yml b/project/db/databasus/databasus.yml new file mode 100644 index 0000000..cb3558e --- /dev/null +++ b/project/db/databasus/databasus.yml @@ -0,0 +1,19 @@ +services: + databasus: + extends: + file: ${TEMPLATES_PATH} + service: default + image: databasus/databasus:v2.21.5 + container_name: databasus + ports: + - 8086:4005 + networks: + - ip4net + volumes: + - ${DB_PATH}/databasus/data:/databasus-data + labels: + # Traefik + - "traefik.enable=true" + - "traefik.http.routers.databasus.rule=Host(`databasus.${LOCAL_DOMAIN}`)" + - "traefik.http.routers.databasus.entrypoints=https" + - "traefik.http.routers.databasus.tls=true" diff --git a/project/service/n8n/Dockerfile b/project/service/n8n/Dockerfile index 8382e66..5f1c353 100644 --- a/project/service/n8n/Dockerfile +++ b/project/service/n8n/Dockerfile @@ -9,7 +9,11 @@ COPY --from=alpine:3.23 /usr/lib/libapk.so* /usr/lib/ USER root # Install Chromium and necessary dependencies for Puppeteer -RUN apk add --no-cache \ +RUN set -x \ + && apk update \ + && apk upgrade \ + && apk add --no-cache \ + udev \ chromium \ nss \ freetype \ @@ -23,6 +27,10 @@ RUN apk add --no-cache \ # Set environment variable for Puppeteer to find Chromium ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true +ENV XDG_CONFIG_HOME=/tmp/.chromium +ENV XDG_CACHE_HOME=/tmp/.chromium + +# Install Puppeteer RUN npm install puppeteer # Install restic and rclone for backups diff --git a/project/service/n8n/n8n.yml b/project/service/n8n/n8n.yml index 052b3b3..dbc0d38 100644 --- a/project/service/n8n/n8n.yml +++ b/project/service/n8n/n8n.yml @@ -28,7 +28,7 @@ services: - ${SERVICE_PATH}/n8n/data:/home/node/.n8n - ${SERVICE_PATH}/n8n/data/rclone.conf:/home/node/.config/rclone/rclone.conf - ${PWD}/scripts:/home/node/.n8n/external-scripts - - ${DB_PATH}/postgres/data/backup:/home/node/.n8n/database + - ${DB_PATH}/databasus/data/backup:/home/node/.n8n/database - ${EXTERNAL_STORAGE}/:/home/node/.n8n/data labels: # Traefik diff --git a/scripts/mam/mam-login.js b/scripts/mam/mam-login.js index 97d2e69..6db73c5 100644 --- a/scripts/mam/mam-login.js +++ b/scripts/mam/mam-login.js @@ -3,11 +3,12 @@ const puppeteer = require('puppeteer'); async function loginToMAM(username, password) { try { const browser = await puppeteer.launch({ + executablePath: '/usr/bin/chromium-browser', headless: true, - args: ['--no-sandbox', '--disable-setuid-sandbox'] + args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-gpu', 'diable-dev-shm-usage'] }); const page = await browser.newPage(); - + console.log("Navigating to MAM login..."); await page.goto('https://www.myanonamouse.net/login.php', { waitUntil: 'networkidle2', @@ -19,18 +20,18 @@ async function loginToMAM(username, password) { console.log("Filling in login form..."); await page.type('input[name="email"]', username); await page.type('input[name="password"]', password); - + console.log("Submitting login form..."); await page.click('input[type="submit"]'); await page.waitForNavigation({ waitUntil: 'domcontentloaded', timeout: 10000 }); - + console.log("Login attempt completed."); const cookies = await page.cookies(); await browser.close(); - + console.log(JSON.stringify(cookies)); } catch (err) { console.error("Login failed: ", err); @@ -42,5 +43,5 @@ const username = process.env.MAM_USERNAME; const password = process.env.MAM_PASSWORD; loginToMAM(username, password) - .then(cookies => ({ result: 'Success', cookies })) - .catch(err => ({ result: 'Error', error: err.message })); + .then(cookies => ({ result: 'Success', cookies })) + .catch(err => ({ result: 'Error', error: err.message }));