Skip to content

brand new install - single domain - registrar returns error #28

@Lockszmith-GH

Description

@Lockszmith-GH

Brand new self-hosted install, added a domain, when opening it's registrar I get an error. collected logs below.

click to expand: logs
domain-locker-app      | �[0;35m
domain-locker-updater  | fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
domain-locker-app      | ██████╗  ██████╗ ███╗   ███╗ █████╗ ██╗███╗   ██╗
domain-locker-app      | ██╔══██╗██╔═══██╗████╗ ████║██╔══██╗██║████╗  ██║
domain-locker-app      | ██║  ██║██║   ██║██╔████╔██║███████║██║██╔██╗ ██║
domain-locker-db       | The files belonging to this database system will be owned by user "postgres".
domain-locker-db       | This user must also own the server process.
domain-locker-db       | 
domain-locker-db       | The database cluster will be initialized with locale "en_US.utf8".
domain-locker-db       | The default database encoding has accordingly been set to "UTF8".
domain-locker-db       | The default text search configuration will be set to "english".
domain-locker-db       | 
domain-locker-db       | Data page checksums are disabled.
domain-locker-db       | 
domain-locker-db       | fixing permissions on existing directory /var/lib/postgresql/data ... ok
domain-locker-db       | creating subdirectories ... ok
domain-locker-db       | selecting dynamic shared memory implementation ... posix
domain-locker-updater  | fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/community/x86_64/APKINDEX.tar.gz
domain-locker-updater  | (1/10) Installing ca-certificates (20241121-r1)
domain-locker-updater  | (2/10) Installing brotli-libs (1.1.0-r2)
domain-locker-updater  | (3/10) Installing c-ares (1.33.1-r0)
domain-locker-updater  | (4/10) Installing libunistring (1.2-r0)
domain-locker-updater  | (5/10) Installing libidn2 (2.3.7-r0)
domain-locker-app      | ██║  ██║██║   ██║██║╚██╔╝██║██╔══██║██║██║╚██╗██║
domain-locker-db       | selecting default "max_connections" ... 100
domain-locker-app      | ██████╔╝╚██████╔╝██║ ╚═╝ ██║██║  ██║██║██║ ╚████║
domain-locker-db       | selecting default "shared_buffers" ... 128MB
domain-locker-updater  | (6/10) Installing nghttp2-libs (1.62.1-r0)
domain-locker-db       | selecting default time zone ... UTC
domain-locker-db       | creating configuration files ... ok
domain-locker-db       | running bootstrap script ... ok
domain-locker-db       | sh: locale: not found
domain-locker-db       | 2025-07-14 02:31:36.457 UTC [36] WARNING:  no usable system locales were found
domain-locker-db       | performing post-bootstrap initialization ... ok
domain-locker-db       | initdb: warning: enabling "trust" authentication for local connections
domain-locker-db       | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
domain-locker-db       | syncing data to disk ... ok
domain-locker-app      | ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝
domain-locker-updater  | (7/10) Installing libpsl (0.21.5-r1)
domain-locker-updater  | (8/10) Installing zstd-libs (1.5.6-r0)
domain-locker-updater  | (9/10) Installing libcurl (8.12.1-r0)
domain-locker-updater  | (10/10) Installing curl (8.12.1-r0)
domain-locker-db       | 
domain-locker-app      | 
domain-locker-db       | 
domain-locker-db       | Success. You can now start the database server using:
domain-locker-db       | 
domain-locker-db       |     pg_ctl -D /var/lib/postgresql/data -l logfile start
domain-locker-db       | 
domain-locker-db       | waiting for server to start....2025-07-14 02:31:37.488 UTC [42] LOG:  starting PostgreSQL 17.5 on x86_64-pc-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit
domain-locker-db       | 2025-07-14 02:31:37.489 UTC [42] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
domain-locker-db       | 2025-07-14 02:31:37.494 UTC [45] LOG:  database system was shut down at 2025-07-14 02:31:37 UTC
domain-locker-db       | 2025-07-14 02:31:37.500 UTC [42] LOG:  database system is ready to accept connections
domain-locker-updater  | Executing busybox-1.36.1-r29.trigger
domain-locker-updater  | Executing ca-certificates-20241121-r1.trigger
domain-locker-updater  | OK: 13 MiB in 24 packages
domain-locker-updater  | crond: crond (busybox 1.36.1) started, log level 8
domain-locker-app      | ██╗      ██████╗  ██████╗██╗  ██╗███████╗██████╗
domain-locker-app      | ██║     ██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗
domain-locker-app      | ██║     ██║   ██║██║     █████╔╝ █████╗  ██████╔╝
domain-locker-db       |  done
domain-locker-app      | ██║     ██║   ██║██║     ██╔═██╗ ██╔══╝  ██╔══██╗
domain-locker-db       | server started
domain-locker-app      | ███████╗╚██████╔╝╚██████╗██║  ██╗███████╗██║  ██║
domain-locker-app      | ╚══════╝ ╚═════╝  ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
domain-locker-app      | 
domain-locker-app      | �[1;35mSource at https://github.com/lissy93/domain-locker
domain-locker-app      | �[0;35mLicensed under MIT. Coded with ☕ and ❤️ by Lissy93
domain-locker-app      | 
domain-locker-app      | ℹ️ �[90m Checking version...�[0m
domain-locker-app      | �[0;32m✅ Domain Locker v0.0.9�[0m
domain-locker-app      | 
domain-locker-db       | CREATE DATABASE
domain-locker-db       | 
domain-locker-db       | 
domain-locker-db       | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
domain-locker-db       | 
domain-locker-db       | waiting for server to shut down...2025-07-14 02:31:37.681 UTC [42] LOG:  received fast shutdown request
domain-locker-db       | .2025-07-14 02:31:37.682 UTC [42] LOG:  aborting any active transactions
domain-locker-db       | 2025-07-14 02:31:37.685 UTC [42] LOG:  background worker "logical replication launcher" (PID 48) exited with exit code 1
domain-locker-db       | 2025-07-14 02:31:37.685 UTC [43] LOG:  shutting down
domain-locker-db       | 2025-07-14 02:31:37.686 UTC [43] LOG:  checkpoint starting: shutdown immediate
domain-locker-db       | 2025-07-14 02:31:38.161 UTC [43] LOG:  checkpoint complete: wrote 925 buffers (5.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.021 s, sync=0.450 s, total=0.477 s; sync files=301, longest=0.024 s, average=0.002 s; distance=4255 kB, estimate=4255 kB; lsn=0/19150D0, redo lsn=0/19150D0
domain-locker-db       | 2025-07-14 02:31:38.176 UTC [42] LOG:  database system is shut down
domain-locker-db       |  done
domain-locker-db       | server stopped
domain-locker-app      | ℹ️ �[90m Checking environment...�[0m
domain-locker-app      | �[0;32m✅ All environment checks have passed�[0m
domain-locker-app      | 
domain-locker-app      | ℹ️ �[90m Waiting for Postgres at postgres:5432...�[0m
domain-locker-app      | �[0;32m✅ Postgres is ready (took 3s)�[0m
domain-locker-app      | 
domain-locker-app      | ℹ️ �[90m Applying schema from schema.sql...�[0m
domain-locker-app      | SET
domain-locker-db       | 
domain-locker-app      | SET
domain-locker-db       | PostgreSQL init process complete; ready for start up.
domain-locker-db       | 
domain-locker-db       | 2025-07-14 02:31:38.231 UTC [1] LOG:  starting PostgreSQL 17.5 on x86_64-pc-linux-musl, compiled by gcc (Alpine 14.2.0) 14.2.0, 64-bit
domain-locker-db       | 2025-07-14 02:31:38.231 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
domain-locker-db       | 2025-07-14 02:31:38.231 UTC [1] LOG:  listening on IPv6 address "::", port 5432
domain-locker-db       | 2025-07-14 02:31:38.234 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
domain-locker-db       | 2025-07-14 02:31:38.239 UTC [58] LOG:  database system was shut down at 2025-07-14 02:31:38 UTC
domain-locker-db       | 2025-07-14 02:31:38.249 UTC [1] LOG:  database system is ready to accept connections
domain-locker-db       | 2025-07-14 02:32:17.164 UTC [139] ERROR:  relation "domain_addresses" does not exist at character 789
domain-locker-db       | 2025-07-14 02:32:17.164 UTC [139] STATEMENT:  
domain-locker-db       | 	      SELECT d.*, 
domain-locker-db       | 	             r.name AS registrar_name, 
domain-locker-db       | 	             r.url AS registrar_url, 
domain-locker-db       | 	             da.ip_address, 
domain-locker-db       | 	             da.is_ipv6, 
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      |  set_config 
domain-locker-app      | ------------
domain-locker-app      |  
domain-locker-app      | (1 row)
domain-locker-app      | 
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-db       | 	             sc.issuer, 
domain-locker-app      | CREATE SCHEMA
domain-locker-app      | ALTER SCHEMA
domain-locker-app      | SET
domain-locker-app      | CREATE EXTENSION
domain-locker-app      | CREATE EXTENSION
domain-locker-db       | 	             sc.issuer_country, 
domain-locker-db       | 	             sc.subject, 
domain-locker-db       | 	             sc.valid_from, 
domain-locker-db       | 	             sc.valid_to, 
domain-locker-db       | 	             sc.fingerprint, 
domain-locker-app      | CREATE TABLE
domain-locker-db       | 	             sc.key_size, 
domain-locker-app      | DO
domain-locker-db       | 	             sc.signature_algorithm, 
domain-locker-db       | 	             wi.name AS whois_name, 
domain-locker-db       | 	             wi.organization, 
domain-locker-app      | CREATE FUNCTION
domain-locker-db       | 	             wi.country, 
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | SET
domain-locker-app      | CREATE SCHEMA
domain-locker-app      | ALTER SCHEMA
domain-locker-app      | COMMENT
domain-locker-app      | CREATE FUNCTION
domain-locker-app      | CREATE FUNCTION
domain-locker-app      | CREATE TABLE
domain-locker-db       | 	             wi.street, 
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	             wi.city, 
domain-locker-db       | 	             wi.state, 
domain-locker-db       | 	             wi.postal_code, 
domain-locker-db       | 	             dh.host_id, 
domain-locker-db       | 	             dr.record_type, 
domain-locker-db       | 	             dr.record_value, 
domain-locker-db       | 	             dt.tag_name
domain-locker-db       | 	      FROM domains d
domain-locker-db       | 	      INNER JOIN registrars r ON d.registrar_id = r.id
domain-locker-db       | 	      LEFT JOIN domain_addresses da ON d.id = da.domain_id
domain-locker-db       | 	      LEFT JOIN ssl_certificates sc ON d.id = sc.domain_id
domain-locker-db       | 	      LEFT JOIN whois_info wi ON d.id = wi.domain_id
domain-locker-db       | 	      LEFT JOIN domain_hosts dh ON d.id = dh.domain_id
domain-locker-db       | 	      LEFT JOIN dns_records dr ON d.id = dr.domain_id
domain-locker-db       | 	      LEFT JOIN domain_tags dt ON d.id = dt.domain_id
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | DO
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	      WHERE r.name = $1
domain-locker-db       | 	    
domain-locker-db       | 2025-07-14 02:32:35.399 UTC [186] ERROR:  relation "domain_addresses" does not exist at character 789
domain-locker-db       | 2025-07-14 02:32:35.399 UTC [186] STATEMENT:  
domain-locker-db       | 	      SELECT d.*, 
domain-locker-db       | 	             r.name AS registrar_name, 
domain-locker-db       | 	             r.url AS registrar_url, 
domain-locker-db       | 	             da.ip_address, 
domain-locker-db       | 	             da.is_ipv6, 
domain-locker-db       | 	             sc.issuer, 
domain-locker-app      | CREATE TABLE
domain-locker-db       | 	             sc.issuer_country, 
domain-locker-db       | 	             sc.subject, 
domain-locker-db       | 	             sc.valid_from, 
domain-locker-db       | 	             sc.valid_to, 
domain-locker-db       | 	             sc.fingerprint, 
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	             sc.key_size, 
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	             sc.signature_algorithm, 
domain-locker-db       | 	             wi.name AS whois_name, 
domain-locker-db       | 	             wi.organization, 
domain-locker-app      | CREATE TABLE
domain-locker-db       | 	             wi.country, 
domain-locker-db       | 	             wi.street, 
domain-locker-db       | 	             wi.city, 
domain-locker-db       | 	             wi.state, 
domain-locker-db       | 	             wi.postal_code, 
domain-locker-db       | 	             dh.host_id, 
domain-locker-db       | 	             dr.record_type, 
domain-locker-db       | 	             dr.record_value, 
domain-locker-db       | 	             dt.tag_name
domain-locker-db       | 	      FROM domains d
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	      INNER JOIN registrars r ON d.registrar_id = r.id
domain-locker-db       | 	      LEFT JOIN domain_addresses da ON d.id = da.domain_id
domain-locker-db       | 	      LEFT JOIN ssl_certificates sc ON d.id = sc.domain_id
domain-locker-db       | 	      LEFT JOIN whois_info wi ON d.id = wi.domain_id
domain-locker-app      | CREATE TABLE
domain-locker-db       | 	      LEFT JOIN domain_hosts dh ON d.id = dh.domain_id
domain-locker-app      | CREATE INDEX
domain-locker-db       | 	      LEFT JOIN dns_records dr ON d.id = dr.domain_id
domain-locker-db       | 	      LEFT JOIN domain_tags dt ON d.id = dt.domain_id
domain-locker-db       | 	      WHERE r.name = $1
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE TABLE
domain-locker-app      | CREATE INDEX
domain-locker-app      | CREATE INDEX
domain-locker-app      | DO
domain-locker-app      | GRANT
domain-locker-app      | GRANT
domain-locker-app      | GRANT
domain-locker-app      | COMMENT
domain-locker-app      | �[0;32m✅ Schema applied successfully�[0m
domain-locker-app      | 
domain-locker-app      | ℹ️ �[90m Testing database connection...�[0m
domain-locker-app      | �[0;32m✅ Database connection test succeeded�[0m
domain-locker-app      | 
domain-locker-app      | ℹ️ �[90m Starting Domain Locker�[0m
domain-locker-app      | �[0;32m✅ Ready at http://localhost:3000�[0m\n
domain-locker-app      | Listening on http://[::]:3000
domain-locker-db       | 	    
domain-locker-app      | Error loading translation file for language "en": Error: ENOENT: no such file or directory, open '/app/src/assets/i18n/en.json'
domain-locker-app      |     at Module.readFileSync (node:fs:457:20)
domain-locker-app      |     at hL.getTranslation (file:///app/dist/analog/server/chunks/_/renderer.mjs:23297:86)
domain-locker-app      |     at e10.loadAndCompileTranslations (file:///app/dist/analog/server/chunks/_/renderer.mjs:23059:38)
domain-locker-app      |     at e10.retrieveTranslations (file:///app/dist/analog/server/chunks/_/renderer.mjs:23052:140)
domain-locker-app      |     at e10.setDefaultLang (file:///app/dist/analog/server/chunks/_/renderer.mjs:23032:24)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:23850:16
domain-locker-app      |     at ui (file:///app/dist/analog/server/chunks/_/renderer.mjs:1797:12)
domain-locker-app      |     at e10.runInitializers (file:///app/dist/analog/server/chunks/_/renderer.mjs:5595:21)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:7006:18
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:6997:21 {
domain-locker-app      |   errno: -2,
domain-locker-app      |   code: 'ENOENT',
domain-locker-app      |   syscall: 'open',
domain-locker-app      |   path: '/app/src/assets/i18n/en.json'
domain-locker-app      | }
domain-locker-app      | SyntaxError: Unexpected token '<', "<html>
domain-locker-app      |  <h"... is not valid JSON
domain-locker-app      |     at JSON.parse (<anonymous>)
domain-locker-app      |     at parseJSONFromBytes (node:internal/deps/undici/undici:5329:19)
domain-locker-app      |     at successSteps (node:internal/deps/undici/undici:5300:27)
domain-locker-app      |     at fullyReadBody (node:internal/deps/undici/undici:1447:9)
domain-locker-app      |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
domain-locker-app      |     at async specConsumeBody (node:internal/deps/undici/undici:5309:7)
domain-locker-app      |     at async fetchSubdomains (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:23:18)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:127:27)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1608:19)
domain-locker-app      |     at async toNodeHandle (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1879:7)
domain-locker-app      | Error fetching from https://api.shodan.io/dns/domain//szkolnik.com: SyntaxError: Unexpected token '<', "<html>
domain-locker-app      |  <h"... is not valid JSON
domain-locker-app      |     at JSON.parse (<anonymous>)
domain-locker-app      |     at parseJSONFromBytes (node:internal/deps/undici/undici:5329:19)
domain-locker-app      |     at successSteps (node:internal/deps/undici/undici:5300:27)
domain-locker-app      |     at fullyReadBody (node:internal/deps/undici/undici:1447:9)
domain-locker-app      |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
domain-locker-app      |     at async specConsumeBody (node:internal/deps/undici/undici:5309:7)
domain-locker-app      |     at async fetchSubdomains (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:23:18)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:127:27)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1608:19)
domain-locker-app      |     at async toNodeHandle (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1879:7)
domain-locker-app      | TypeError: Failed to parse URL from undefined/szkolnik.com
domain-locker-app      |     at node:internal/deps/undici/undici:12345:11
domain-locker-app      |     at r11.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:605:130)
domain-locker-app      |     at t15.run (file:///app/dist/analog/server/chunks/_/renderer.mjs:497:43)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:276:29
domain-locker-app      |     at r11.invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:621:154)
domain-locker-app      |     at t15.runTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:525:45)
domain-locker-app      |     at g11 (file:///app/dist/analog/server/chunks/_/renderer.mjs:704:26)
domain-locker-app      |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
domain-locker-app      |   [cause]: TypeError: Invalid URL
domain-locker-app      |       at new URL (node:internal/url:796:36)
domain-locker-app      |       at new Request (node:internal/deps/undici/undici:5853:25)
domain-locker-app      |       at fetch (node:internal/deps/undici/undici:10123:25)
domain-locker-app      |       at fetch (node:internal/deps/undici/undici:12344:10)
domain-locker-app      |       at fetch (node:internal/bootstrap/web/exposed-window-or-worker:79:16)
domain-locker-app      |       at file:///app/dist/analog/server/chunks/_/renderer.mjs:414:25
domain-locker-app      |       at T10.o11.<computed> (file:///app/dist/analog/server/chunks/_/renderer.mjs:113:18)
domain-locker-app      |       at fetchSubdomains (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:22:28)
domain-locker-app      |       at Object.handler (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:129:36)
domain-locker-app      |       at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
domain-locker-app      |     code: 'ERR_INVALID_URL',
domain-locker-app      |     input: 'undefined/szkolnik.com'
domain-locker-app      |   }
domain-locker-app      | }
domain-locker-app      | Error fetching from undefined/szkolnik.com: TypeError: Failed to parse URL from undefined/szkolnik.com
domain-locker-app      |     at node:internal/deps/undici/undici:12345:11
domain-locker-app      |     at r11.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:605:130)
domain-locker-app      |     at t15.run (file:///app/dist/analog/server/chunks/_/renderer.mjs:497:43)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:276:29
domain-locker-app      |     at r11.invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:621:154)
domain-locker-app      |     at t15.runTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:525:45)
domain-locker-app      |     at g11 (file:///app/dist/analog/server/chunks/_/renderer.mjs:704:26)
domain-locker-app      |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
domain-locker-app      |   [cause]: TypeError: Invalid URL
domain-locker-app      |       at new URL (node:internal/url:796:36)
domain-locker-app      |       at new Request (node:internal/deps/undici/undici:5853:25)
domain-locker-app      |       at fetch (node:internal/deps/undici/undici:10123:25)
domain-locker-app      |       at fetch (node:internal/deps/undici/undici:12344:10)
domain-locker-app      |       at fetch (node:internal/bootstrap/web/exposed-window-or-worker:79:16)
domain-locker-app      |       at file:///app/dist/analog/server/chunks/_/renderer.mjs:414:25
domain-locker-app      |       at T10.o11.<computed> (file:///app/dist/analog/server/chunks/_/renderer.mjs:113:18)
domain-locker-app      |       at fetchSubdomains (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:22:28)
domain-locker-app      |       at Object.handler (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:129:36)
domain-locker-app      |       at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
domain-locker-app      |     code: 'ERR_INVALID_URL',
domain-locker-app      |     input: 'undefined/szkolnik.com'
domain-locker-app      |   }
domain-locker-app      | }
domain-locker-app      | Error in API handler: Error: Both primary and fallback services failed
domain-locker-app      |     at Object.handler (file:///app/dist/analog/server/chunks/routes/domain-subs.mjs:131:17)
domain-locker-app      |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1608:19)
domain-locker-app      |     at async toNodeHandle (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1879:7)
domain-locker-app      |     at async b (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:586:6904)
domain-locker-app      |     at async O (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:586:7187)
domain-locker-app      |     at async $fetchRaw2 (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:2368:26)
domain-locker-app      |     at async $fetch2 (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:2426:15)
domain-locker-app      |     at async Object.handler (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1608:19)
domain-locker-app      |     at async Server.toNodeHandle (file:///app/dist/analog/server/chunks/nitro/nitro.mjs:1879:7)
domain-locker-app      | Missing translation for key: "FOOTER.NAME"
domain-locker-app      | Missing translation for key: "FOOTER.DESCRIPTION"
domain-locker-app      | Missing translation for key: "FOOTER.CTAS.SIGN_UP"
domain-locker-app      | Missing translation for key: "FOOTER.CTAS.GET_CODE"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.LEFT.FEATURES"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.LEFT.PRICING"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.LEFT.SELF_HOSTING"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.LEFT.ALTERNATIVES"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.MIDDLE.STATUS"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.MIDDLE.MORE_APPS"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.MIDDLE.SUPPORT"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.MIDDLE.ATTRIBUTIONS"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.RIGHT.LICENSE"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.RIGHT.SECURITY"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.RIGHT.PRIVACY_POLICY"
domain-locker-app      | Missing translation for key: "FOOTER.LINKS.RIGHT.TERMS_OF_SERVICE"
domain-locker-app      | ❌ Query execution error: error: relation "domain_addresses" does not exist
domain-locker-app      |     at /app/dist/analog/server/node_modules/pg/lib/client.js:545:17
domain-locker-app      |     at r11.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:605:130)
domain-locker-app      |     at t15.run (file:///app/dist/analog/server/chunks/_/renderer.mjs:497:43)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:276:29
domain-locker-app      |     at r11.invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:621:154)
domain-locker-app      |     at t15.runTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:525:45)
domain-locker-app      |     at g11 (file:///app/dist/analog/server/chunks/_/renderer.mjs:704:26)
domain-locker-app      |     at invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:662:25)
domain-locker-app      |     at i12.useG.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:654:35)
domain-locker-app      |     at t12.args.<computed> (file:///app/dist/analog/server/chunks/_/renderer.mjs:1070:24) {
domain-locker-app      |   length: 116,
domain-locker-app      |   severity: 'ERROR',
domain-locker-app      |   code: '42P01',
domain-locker-app      |   detail: undefined,
domain-locker-app      |   hint: undefined,
domain-locker-app      |   position: '789',
domain-locker-app      |   internalPosition: undefined,
domain-locker-app      |   internalQuery: undefined,
domain-locker-app      |   where: undefined,
domain-locker-app      |   schema: undefined,
domain-locker-app      |   table: undefined,
domain-locker-app      |   column: undefined,
domain-locker-app      |   dataType: undefined,
domain-locker-app      |   constraint: undefined,
domain-locker-app      |   file: 'parse_relation.c',
domain-locker-app      |   line: '1449',
domain-locker-app      |   routine: 'parserOpenTable'
domain-locker-app      | }
domain-locker-app      | ❌ Query execution error: error: relation "domain_addresses" does not exist
domain-locker-app      |     at /app/dist/analog/server/node_modules/pg/lib/client.js:545:17
domain-locker-app      |     at r11.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:605:130)
domain-locker-app      |     at t15.run (file:///app/dist/analog/server/chunks/_/renderer.mjs:497:43)
domain-locker-app      |     at file:///app/dist/analog/server/chunks/_/renderer.mjs:276:29
domain-locker-app      |     at r11.invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:621:154)
domain-locker-app      |     at t15.runTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:525:45)
domain-locker-app      |     at g11 (file:///app/dist/analog/server/chunks/_/renderer.mjs:704:26)
domain-locker-app      |     at invokeTask (file:///app/dist/analog/server/chunks/_/renderer.mjs:662:25)
domain-locker-app      |     at i12.useG.invoke (file:///app/dist/analog/server/chunks/_/renderer.mjs:654:35)
domain-locker-app      |     at t12.args.<computed> (file:///app/dist/analog/server/chunks/_/renderer.mjs:1070:24) {
domain-locker-app      |   length: 116,
domain-locker-app      |   severity: 'ERROR',
domain-locker-app      |   code: '42P01',
domain-locker-app      |   detail: undefined,
domain-locker-app      |   hint: undefined,
domain-locker-app      |   position: '789',
domain-locker-app      |   internalPosition: undefined,
domain-locker-app      |   internalQuery: undefined,
domain-locker-app      |   where: undefined,
domain-locker-app      |   schema: undefined,
domain-locker-app      |   table: undefined,
domain-locker-app      |   column: undefined,
domain-locker-app      |   dataType: undefined,
domain-locker-app      |   constraint: undefined,
domain-locker-app      |   file: 'parse_relation.c',
domain-locker-app      |   line: '1449',
domain-locker-app      |   routine: 'parserOpenTable'
domain-locker-app      | }
click to expand: compose.yaml code
services:
  postgres:
    image: postgres:17-alpine
    container_name: domain-locker-db
    restart: unless-stopped

    # Env vars for initial DB
    environment:
      POSTGRES_DB: ${DL_PG_NAME:-domain_locker}
      POSTGRES_USER: ${DL_PG_USER:-postgres}
      POSTGRES_PASSWORD: ${DL_PG_PASSWORD:?}

#   ports:
#     - "${DL_PG_PORT:-5432}:5432"

    volumes:
    # This is where the Postgres data will be stored
    - ./data/postgres:/var/lib/postgresql/data
    # - postgres_data:/var/lib/postgresql/data
    # If you want to skip the init script, you can use the SQL to seed the db
    # - ./db/schema.sql:/docker-entrypoint-initdb.d/init-schema.sql:ro
    networks:
      - domain_locker_network

    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DL_PG_USER:-postgres}"]
      interval: 5s
      timeout: 3s
      retries: 10

  app:
    image: ghcr.io/lissy93/domain-locker:0.0.9 # or ghcr.io/lissy93/domain-locker:latest # or lissy93/domain-locker:latest
    container_name: domain-locker-app
    restart: unless-stopped
    environment:
      DL_ENV_TYPE: ${DL_ENV_TYPE:-selfHosted}
      DL_PG_HOST: ${DL_PG_HOST:-postgres}
      DL_PG_PORT: ${DL_PG_PORT:-5432}
      DL_PG_USER: ${DL_PG_USER:-postgres}
      DL_PG_PASSWORD: ${DL_PG_PASSWORD:?}
      DL_PG_NAME: ${DL_PG_NAME:-domain_locker}
    ports:
      - "3000:3000"
    depends_on:
      - postgres
    networks:
      - domain_locker_network
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.domainlocker.rule=Host(`domain-locker.local`)"
    - "traefik.http.routers.domainlocker.entrypoints=http"
    - "traefik.http.services.domainlocker.loadbalancer.server.port=3000"

  updater:
    image: alpine:3.20
    container_name: domain-locker-updater
    restart: unless-stopped
    depends_on:
      - app
    networks:
      - domain_locker_network
    command: >
      /bin/sh -c "
        apk add --no-cache curl &&
        echo '0 3 * * * /usr/bin/curl -s -X POST http://app:3000/api/domain-updater' > /etc/crontabs/root &&
        echo '0 4 * * * /usr/bin/curl -s -X POST http://app:3000/api/expiration-reminders' >> /etc/crontabs/root &&
        crond -f -L /dev/stdout
      "

# volumes:
#   postgres_data:
#     name: domain_locker_postgres_data
#     external: false

networks:
  domain_locker_network:
    driver: bridge

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions