-
-
Notifications
You must be signed in to change notification settings - Fork 62
Closed
Description
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: bridgeMetadata
Metadata
Assignees
Labels
No labels