All-in-One Docker image starts API only (no frontend / no port 80 http server) on Synology NAS #2436

Closed
opened 2026-03-22 14:07:28 -05:00 by GiteaMirror · 5 comments
Owner

Originally created by @Sturmi77 on GitHub (Nov 28, 2025).

Description

No response

Vikunja Version

v1.0.0-rc3

Browser and version

Edge

Can you reproduce the bug on the Vikunja demo site?

Please select

Screenshots

Hi,

when running Vikunja via the all‑in‑one Docker image on a Synology NAS, only the API server on port 3456 starts, but the HTTP server on port 80 (frontend) never comes up. The container itself is running fine, database migrations succeed (tested with SQLite and PostgreSQL), but the web UI is not accessible.

Environment
Platform: Synology NAS (Docker / Portainer stack)

Vikunja image tags tested:

vikunja/vikunja:0.24.6 (IMAGE ID: cec159e222f5, SIZE: 91.2MB)

vikunja/vikunja:0.24.5 (IMAGE ID: eb5dd665369a, SIZE: 91.2MB)

vikunja/vikunja:1.0.0-rc2 (IMAGE ID: 01763c984138, SIZE: 71.2MB)

vikunja/vikunja:1.0.0-rc3 (IMAGE ID: 01763c984138, SIZE: 71.2MB)

Reverse proxy: none during tests (nginx stopped)

Browser: Edge

Docker Compose (current PostgreSQL setup)
text
version: "3.9"
services:
postgres:
image: postgres:16-alpine
container_name: vikunja-db
restart: unless-stopped
environment:
POSTGRES_DB: vikunja
POSTGRES_USER: vikunja
POSTGRES_PASSWORD: supersecret
volumes:
- /data/compose/77/vikunja-pgdata:/var/lib/postgresql/data

vikunja:
image: vikunja/vikunja:0.24.6
container_name: vikunja
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
VIKUNJA_DATABASE_TYPE: postgres
VIKUNJA_DATABASE_HOST: postgres
VIKUNJA_DATABASE_PORT: 5432
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DATABASE_PASSWORD: supersecret
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_SERVICE_PUBLICURL: "http://192.168.178.115:8183"
ports:
- "8183:80"
volumes:
- /data/compose/77/vikunja-files:/app/files
(I also reproduced the same behaviour with a minimal SQLite setup.)

Actual behaviour
Container starts and stays in running state. Logs show successful migrations and API startup, but only the API server on port 3456:

text
time=2025-11-28T17:03:51.433Z level=INFO msg="No config file found, using default or config from environment variables."
time=2025-11-28T17:03:51.433Z level=INFO msg="Running migrations…"
time=2025-11-28T17:03:51.772Z level=INFO msg="Ran all migrations successfully."
time=2025-11-28T17:03:51.774Z level=INFO msg="Mailer is disabled, not sending reminders per mail"
time=2025-11-28T17:03:51.774Z level=INFO msg="Mailer is disabled, not sending overdue per mail"
time=2025-11-28T17:03:51.774Z level=INFO msg="Vikunja version v1.0.0-rc3"
⇨ http server started on [::]:3456
There is never a line like:

text
⇨ http server started on [::]:80
docker inspect confirms that port 80/tcp is mapped to host port 8183.

From another machine, curl http://:8183/ fails (connection closed / no HTTP response).

SSH from the NAS itself to curl http://localhost:8183/ also fails.

Only the API on port 3456 is listening inside the container.

The warning about failed to create modcache index dir: mkdir /.cache: permission denied appears, but seems unrelated.

Expected behaviour
All‑in‑one image should start both:

HTTP server for the web frontend on port 80.

API server on port 3456.

Logs should contain both:

http server started on [::]:80

http server started on [::]:3456

Web UI should be available at http://:8183.

Troubleshooting already done
Tested with SQLite backend (VIKUNJA_DATABASE_TYPE=sqlite) and clean DB file.

Tested with PostgreSQL backend as shown in the compose file above.

Deleted volumes / DB directories multiple times to ensure a fresh install.

Stopped nginx / reverse proxy on the host to rule out port conflicts.

Tried different image tags (0.24.5, 0.24.6, 1.0.0-rc2, 1.0.0-rc3).

Verified image sizes and IDs:

0.24.x images ~91MB, rc images ~71MB.

Container user is 1000 (no custom user: override in compose).

No additional environment variables like VIKUNJA_SERVICE_ROOTPATH set anymore.

Questions
Is there any known issue with the all‑in‑one Docker image on Synology/NAS or specific architectures where only the API server is started?

Are there additional environment variables or build flags required to enable the HTTP server on port 80 in the latest images?

Can you reproduce this behaviour with the compose example above on a similar environment?

Thanks a lot for having a look – happy to provide more logs or run test builds if needed.

Originally created by @Sturmi77 on GitHub (Nov 28, 2025). ### Description _No response_ ### Vikunja Version v1.0.0-rc3 ### Browser and version Edge ### Can you reproduce the bug on the Vikunja demo site? Please select ### Screenshots Hi, when running Vikunja via the all‑in‑one Docker image on a Synology NAS, only the API server on port 3456 starts, but the HTTP server on port 80 (frontend) never comes up. The container itself is running fine, database migrations succeed (tested with SQLite and PostgreSQL), but the web UI is not accessible. Environment Platform: Synology NAS (Docker / Portainer stack) Vikunja image tags tested: vikunja/vikunja:0.24.6 (IMAGE ID: cec159e222f5, SIZE: 91.2MB) vikunja/vikunja:0.24.5 (IMAGE ID: eb5dd665369a, SIZE: 91.2MB) vikunja/vikunja:1.0.0-rc2 (IMAGE ID: 01763c984138, SIZE: 71.2MB) vikunja/vikunja:1.0.0-rc3 (IMAGE ID: 01763c984138, SIZE: 71.2MB) Reverse proxy: none during tests (nginx stopped) Browser: Edge Docker Compose (current PostgreSQL setup) text version: "3.9" services: postgres: image: postgres:16-alpine container_name: vikunja-db restart: unless-stopped environment: POSTGRES_DB: vikunja POSTGRES_USER: vikunja POSTGRES_PASSWORD: supersecret volumes: - /data/compose/77/vikunja-pgdata:/var/lib/postgresql/data vikunja: image: vikunja/vikunja:0.24.6 container_name: vikunja restart: unless-stopped depends_on: postgres: condition: service_healthy environment: VIKUNJA_DATABASE_TYPE: postgres VIKUNJA_DATABASE_HOST: postgres VIKUNJA_DATABASE_PORT: 5432 VIKUNJA_DATABASE_USER: vikunja VIKUNJA_DATABASE_PASSWORD: supersecret VIKUNJA_DATABASE_DATABASE: vikunja VIKUNJA_SERVICE_PUBLICURL: "http://192.168.178.115:8183" ports: - "8183:80" volumes: - /data/compose/77/vikunja-files:/app/files (I also reproduced the same behaviour with a minimal SQLite setup.) Actual behaviour Container starts and stays in running state. Logs show successful migrations and API startup, but only the API server on port 3456: text time=2025-11-28T17:03:51.433Z level=INFO msg="No config file found, using default or config from environment variables." time=2025-11-28T17:03:51.433Z level=INFO msg="Running migrations…" time=2025-11-28T17:03:51.772Z level=INFO msg="Ran all migrations successfully." time=2025-11-28T17:03:51.774Z level=INFO msg="Mailer is disabled, not sending reminders per mail" time=2025-11-28T17:03:51.774Z level=INFO msg="Mailer is disabled, not sending overdue per mail" time=2025-11-28T17:03:51.774Z level=INFO msg="Vikunja version v1.0.0-rc3" ⇨ http server started on [::]:3456 There is never a line like: text ⇨ http server started on [::]:80 docker inspect confirms that port 80/tcp is mapped to host port 8183. From another machine, curl http://<NAS-IP>:8183/ fails (connection closed / no HTTP response). SSH from the NAS itself to curl http://localhost:8183/ also fails. Only the API on port 3456 is listening inside the container. The warning about failed to create modcache index dir: mkdir /.cache: permission denied appears, but seems unrelated. Expected behaviour All‑in‑one image should start both: HTTP server for the web frontend on port 80. API server on port 3456. Logs should contain both: http server started on [::]:80 http server started on [::]:3456 Web UI should be available at http://<NAS-IP>:8183. Troubleshooting already done Tested with SQLite backend (VIKUNJA_DATABASE_TYPE=sqlite) and clean DB file. Tested with PostgreSQL backend as shown in the compose file above. Deleted volumes / DB directories multiple times to ensure a fresh install. Stopped nginx / reverse proxy on the host to rule out port conflicts. Tried different image tags (0.24.5, 0.24.6, 1.0.0-rc2, 1.0.0-rc3). Verified image sizes and IDs: 0.24.x images ~91MB, rc images ~71MB. Container user is 1000 (no custom user: override in compose). No additional environment variables like VIKUNJA_SERVICE_ROOTPATH set anymore. Questions Is there any known issue with the all‑in‑one Docker image on Synology/NAS or specific architectures where only the API server is started? Are there additional environment variables or build flags required to enable the HTTP server on port 80 in the latest images? Can you reproduce this behaviour with the compose example above on a similar environment? Thanks a lot for having a look – happy to provide more logs or run test builds if needed.
Author
Owner

@kolaente commented on GitHub (Nov 29, 2025):

There is no separate http server for the frontend on port 80. Everything is served on port 3456.

You can change this port in the settings: https://vikunja.io/docs/config-options/#1-service-interface

@kolaente commented on GitHub (Nov 29, 2025): There is no separate http server for the frontend on port 80. Everything is served on port 3456. You can change this port in the settings: https://vikunja.io/docs/config-options/#1-service-interface
Author
Owner

@Sturmi77 commented on GitHub (Nov 29, 2025):

Thansk but I cant reach the frontend on 3456 either.
I have also tried different port confirguations and no port related configuration at all.
The frontend is not reachable on any port.

@Sturmi77 commented on GitHub (Nov 29, 2025): Thansk but I cant reach the frontend on 3456 either. I have also tried different port confirguations and no port related configuration at all. The frontend is not reachable on any port.
Author
Owner

@kolaente commented on GitHub (Dec 1, 2025):

You have only exposed port 80 in your docker compose, not port 3456. You can only access the ports that you expose from the outside of the container

@kolaente commented on GitHub (Dec 1, 2025): You have only exposed port 80 in your docker compose, not port 3456. You can only access the ports that you expose from the outside of the container
Author
Owner

@Sturmi77 commented on GitHub (Dec 1, 2025):

Thanks, but also with differnet configuration exposing 3456 I cant reach the frontend.
The docker inspect also seems to show that 3456 is exposed

AppArmorProfile:"docker-default",
Args:[
],
Config:{
AttachStderr:true,
AttachStdin:false,
AttachStdout:true,
Cmd:null,
Domainname:"",
Entrypoint:[
"/app/vikunja/vikunja"
],
Env:[
"VIKUNJA_SERVICE_INTERFACE=3456",
"VIKUNJA_SERVICE_PUBLICURL=http://192.168.178.115:3456",
"VIKUNJA_DATABASE_TYPE=postgres",
"VIKUNJA_DATABASE_HOST=postgres",
"VIKUNJA_DATABASE_PORT=5432",
"VIKUNJA_DATABASE_USER=vikunja",
"VIKUNJA_DATABASE_PASSWORD=supersecret",
"VIKUNJA_DATABASE_DATABASE=vikunja",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"VIKUNJA_SERVICE_ROOTPATH=/app/vikunja/",
"VIKUNJA_DATABASE_PATH=/db/vikunja.db"
],
ExposedPorts:{
3456/tcp:{
}
},
Hostname:"128a8a5e84fa",
Image:"vikunja/vikunja:latest",
Labels:{
com.docker.compose.config-hash:"73e2147cd868c2e522d79e916f9ea441c725406627a6824a4fd3c497c331a421",
com.docker.compose.container-number:"1",
com.docker.compose.depends_on:"postgres:service_healthy:false",
com.docker.compose.image:"sha256:95d8134f177e03ca177cf24d1a28a350ba70ab9a10a2dfe6e754e036a5c93b6f",
com.docker.compose.oneoff:"False",
com.docker.compose.project:"vikunja",
com.docker.compose.project.config_files:"",
com.docker.compose.project.working_dir:"/data/compose/77",
com.docker.compose.replace:"1f0ee593fe6bce84beedbf64aeb1d0827bd20373ee5d770648179ee1da52c9cc",
com.docker.compose.service:"vikunja",
com.docker.compose.version:"",
org.opencontainers.image.authors:"maintainers@vikunja.io",
org.opencontainers.image.created:"2025-11-27T22:18:16.299Z",
org.opencontainers.image.description:"The to-do app to organize your life.",
org.opencontainers.image.documentation:"https://vikunja.io/docs",
org.opencontainers.image.licenses:"AGPL-3.0",
org.opencontainers.image.revision:"b175c7ff6e9492971f455e8e2b7f7b6c934671ab",
org.opencontainers.image.source:"https://github.com/go-vikunja/vikunja",
org.opencontainers.image.title:"vikunja",
org.opencontainers.image.url:"https://github.com/go-vikunja/vikunja",
org.opencontainers.image.version:"1.0.0-rc3"
},
OnBuild:null,
OpenStdin:false,
StdinOnce:false,
Tty:false,
User:"1000",
Volumes:null,
WorkingDir:"/app/vikunja"
},
Created:"2025-12-01T11:07:10.753045387Z",
Driver:"btrfs",
ExecIDs:null,
GraphDriver:{
Data:null,
Name:"btrfs"
},
HostConfig:{
AutoRemove:false,
Binds:[
"/volume1/docker/vikunja/files:/app/files:rw"
],
BlkioDeviceReadBps:null,
BlkioDeviceReadIOps:null,
BlkioDeviceWriteBps:null,
BlkioDeviceWriteIOps:null,
BlkioWeight:0,
BlkioWeightDevice:null,
CapAdd:null,
CapDrop:null,
Cgroup:"",
CgroupParent:"",
CgroupnsMode:"host",
ConsoleSize:[
0,
0
],
ContainerIDFile:"",
CpuCount:0,
CpuPercent:0,
CpuPeriod:0,
CpuQuota:0,
CpuRealtimePeriod:0,
CpuRealtimeRuntime:0,
CpuShares:0,
CpusetCpus:"",
CpusetMems:"",
DeviceCgroupRules:null,
DeviceRequests:null,
Devices:null,
Dns:null,
DnsOptions:null,
DnsSearch:null,
ExtraHosts:[
],
GroupAdd:null,
IOMaximumBandwidth:0,
IOMaximumIOps:0,
IpcMode:"private",
Isolation:"",
Links:null,
LogConfig:{
Config:{
},
Type:"db"
},
MaskedPaths:[
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
Memory:0,
MemoryReservation:0,
MemorySwap:0,
MemorySwappiness:null,
NanoCpus:0,
NetworkMode:"vikunja_default",
OomKillDisable:false,
OomScoreAdj:0,
PidMode:"",
PidsLimit:null,
PortBindings:{
3456/tcp:[
{
HostIp:"",
HostPort:"3456"
}
]
},
Privileged:false,
PublishAllPorts:false,
ReadonlyPaths:[
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
],
ReadonlyRootfs:false,
RestartPolicy:{
MaximumRetryCount:0,
Name:"unless-stopped"
},
Runtime:"runc",
SecurityOpt:null,
ShmSize:67108864,
UTSMode:"",
Ulimits:null,
UsernsMode:"",
VolumeDriver:"",
VolumesFrom:null
},
HostnamePath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/hostname",
HostsPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/hosts",
Id:"128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f",
Image:"sha256:95d8134f177e03ca177cf24d1a28a350ba70ab9a10a2dfe6e754e036a5c93b6f",
LogPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/log.db",
MountLabel:"",
Mounts:[
{
Destination:"/app/files",
Mode:"rw",
Propagation:"rprivate",
RW:true,
Source:"/volume1/docker/vikunja/files",
Type:"bind"
}
],
Name:"/vikunja",
NetworkSettings:{
Bridge:"",
EndpointID:"",
Gateway:"",
GlobalIPv6Address:"",
GlobalIPv6PrefixLen:0,
HairpinMode:false,
IPAddress:"",
IPPrefixLen:0,
IPv6Gateway:"",
LinkLocalIPv6Address:"",
LinkLocalIPv6PrefixLen:0,
MacAddress:"",
Networks:{
vikunja_default:{
Aliases:[
"vikunja",
"vikunja",
"128a8a5e84fa"
],
DriverOpts:null,
EndpointID:"b035465a2037667c338a619289f8d5a749c12343e499f3105ed616c38297b38f",
Gateway:"172.20.0.1",
GlobalIPv6Address:"",
GlobalIPv6PrefixLen:0,
IPAMConfig:null,
IPAddress:"172.20.0.3",
IPPrefixLen:16,
IPv6Gateway:"",
Links:null,
MacAddress:"02:42:ac:14:00:03",
NetworkID:"b8ff8cb3cc9445d81f4b7c073f335c4266480efdbf8dcde05079c68f45d557eb"
}
},
Ports:{
3456/tcp:[
{
HostIp:"0.0.0.0",
HostPort:"3456"
},
{
HostIp:"::",
HostPort:"3456"
}
]
},
SandboxID:"f774941ab77a441b1a0e767287dc99cbc7e1e5f893f5a7db45e53c51c8051f63",
SandboxKey:"/var/run/docker/netns/f774941ab77a",
SecondaryIPAddresses:null,
SecondaryIPv6Addresses:null
},
Path:"/app/vikunja/vikunja",
Platform:"linux",
Portainer:{
ResourceControl:{
Id:19,
ResourceId:"3_vikunja",
SubResourceIds:[
],
Type:6,
UserAccesses:[
],
TeamAccesses:[
],
Public:false,
AdministratorsOnly:true,
System:false
}
},
ProcessLabel:"",
ResolvConfPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/resolv.conf",
RestartCount:0,
State:{
Dead:false,
Error:"",
ExitCode:0,
FinishedAt:"0001-01-01T00:00:00Z",
OOMKilled:false,
Paused:false,
Pid:29524,
Restarting:false,
Running:true,
StartedAt:"2025-12-01T11:07:19.606940577Z",
Status:"running"
}
}

I guess I will give it up for the moment

@Sturmi77 commented on GitHub (Dec 1, 2025): Thanks, but also with differnet configuration exposing 3456 I cant reach the frontend. The docker inspect also seems to show that 3456 is exposed AppArmorProfile:"docker-default", Args:[ ], Config:{ AttachStderr:true, AttachStdin:false, AttachStdout:true, Cmd:null, Domainname:"", Entrypoint:[ "/app/vikunja/vikunja" ], Env:[ "VIKUNJA_SERVICE_INTERFACE=3456", "VIKUNJA_SERVICE_PUBLICURL=http://192.168.178.115:3456", "VIKUNJA_DATABASE_TYPE=postgres", "VIKUNJA_DATABASE_HOST=postgres", "VIKUNJA_DATABASE_PORT=5432", "VIKUNJA_DATABASE_USER=vikunja", "VIKUNJA_DATABASE_PASSWORD=supersecret", "VIKUNJA_DATABASE_DATABASE=vikunja", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "VIKUNJA_SERVICE_ROOTPATH=/app/vikunja/", "VIKUNJA_DATABASE_PATH=/db/vikunja.db" ], ExposedPorts:{ 3456/tcp:{ } }, Hostname:"128a8a5e84fa", Image:"vikunja/vikunja:latest", Labels:{ com.docker.compose.config-hash:"73e2147cd868c2e522d79e916f9ea441c725406627a6824a4fd3c497c331a421", com.docker.compose.container-number:"1", com.docker.compose.depends_on:"postgres:service_healthy:false", com.docker.compose.image:"sha256:95d8134f177e03ca177cf24d1a28a350ba70ab9a10a2dfe6e754e036a5c93b6f", com.docker.compose.oneoff:"False", com.docker.compose.project:"vikunja", com.docker.compose.project.config_files:"", com.docker.compose.project.working_dir:"/data/compose/77", com.docker.compose.replace:"1f0ee593fe6bce84beedbf64aeb1d0827bd20373ee5d770648179ee1da52c9cc", com.docker.compose.service:"vikunja", com.docker.compose.version:"", org.opencontainers.image.authors:"maintainers@vikunja.io", org.opencontainers.image.created:"2025-11-27T22:18:16.299Z", org.opencontainers.image.description:"The to-do app to organize your life.", org.opencontainers.image.documentation:"https://vikunja.io/docs", org.opencontainers.image.licenses:"AGPL-3.0", org.opencontainers.image.revision:"b175c7ff6e9492971f455e8e2b7f7b6c934671ab", org.opencontainers.image.source:"https://github.com/go-vikunja/vikunja", org.opencontainers.image.title:"vikunja", org.opencontainers.image.url:"https://github.com/go-vikunja/vikunja", org.opencontainers.image.version:"1.0.0-rc3" }, OnBuild:null, OpenStdin:false, StdinOnce:false, Tty:false, User:"1000", Volumes:null, WorkingDir:"/app/vikunja" }, Created:"2025-12-01T11:07:10.753045387Z", Driver:"btrfs", ExecIDs:null, GraphDriver:{ Data:null, Name:"btrfs" }, HostConfig:{ AutoRemove:false, Binds:[ "/volume1/docker/vikunja/files:/app/files:rw" ], BlkioDeviceReadBps:null, BlkioDeviceReadIOps:null, BlkioDeviceWriteBps:null, BlkioDeviceWriteIOps:null, BlkioWeight:0, BlkioWeightDevice:null, CapAdd:null, CapDrop:null, Cgroup:"", CgroupParent:"", CgroupnsMode:"host", ConsoleSize:[ 0, 0 ], ContainerIDFile:"", CpuCount:0, CpuPercent:0, CpuPeriod:0, CpuQuota:0, CpuRealtimePeriod:0, CpuRealtimeRuntime:0, CpuShares:0, CpusetCpus:"", CpusetMems:"", DeviceCgroupRules:null, DeviceRequests:null, Devices:null, Dns:null, DnsOptions:null, DnsSearch:null, ExtraHosts:[ ], GroupAdd:null, IOMaximumBandwidth:0, IOMaximumIOps:0, IpcMode:"private", Isolation:"", Links:null, LogConfig:{ Config:{ }, Type:"db" }, MaskedPaths:[ "/proc/asound", "/proc/acpi", "/proc/kcore", "/proc/keys", "/proc/latency_stats", "/proc/timer_list", "/proc/timer_stats", "/proc/sched_debug", "/proc/scsi", "/sys/firmware" ], Memory:0, MemoryReservation:0, MemorySwap:0, MemorySwappiness:null, NanoCpus:0, NetworkMode:"vikunja_default", OomKillDisable:false, OomScoreAdj:0, PidMode:"", PidsLimit:null, PortBindings:{ 3456/tcp:[ { HostIp:"", HostPort:"3456" } ] }, Privileged:false, PublishAllPorts:false, ReadonlyPaths:[ "/proc/bus", "/proc/fs", "/proc/irq", "/proc/sys", "/proc/sysrq-trigger" ], ReadonlyRootfs:false, RestartPolicy:{ MaximumRetryCount:0, Name:"unless-stopped" }, Runtime:"runc", SecurityOpt:null, ShmSize:67108864, UTSMode:"", Ulimits:null, UsernsMode:"", VolumeDriver:"", VolumesFrom:null }, HostnamePath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/hostname", HostsPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/hosts", Id:"128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f", Image:"sha256:95d8134f177e03ca177cf24d1a28a350ba70ab9a10a2dfe6e754e036a5c93b6f", LogPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/log.db", MountLabel:"", Mounts:[ { Destination:"/app/files", Mode:"rw", Propagation:"rprivate", RW:true, Source:"/volume1/docker/vikunja/files", Type:"bind" } ], Name:"/vikunja", NetworkSettings:{ Bridge:"", EndpointID:"", Gateway:"", GlobalIPv6Address:"", GlobalIPv6PrefixLen:0, HairpinMode:false, IPAddress:"", IPPrefixLen:0, IPv6Gateway:"", LinkLocalIPv6Address:"", LinkLocalIPv6PrefixLen:0, MacAddress:"", Networks:{ vikunja_default:{ Aliases:[ "vikunja", "vikunja", "128a8a5e84fa" ], DriverOpts:null, EndpointID:"b035465a2037667c338a619289f8d5a749c12343e499f3105ed616c38297b38f", Gateway:"172.20.0.1", GlobalIPv6Address:"", GlobalIPv6PrefixLen:0, IPAMConfig:null, IPAddress:"172.20.0.3", IPPrefixLen:16, IPv6Gateway:"", Links:null, MacAddress:"02:42:ac:14:00:03", NetworkID:"b8ff8cb3cc9445d81f4b7c073f335c4266480efdbf8dcde05079c68f45d557eb" } }, Ports:{ 3456/tcp:[ { HostIp:"0.0.0.0", HostPort:"3456" }, { HostIp:"::", HostPort:"3456" } ] }, SandboxID:"f774941ab77a441b1a0e767287dc99cbc7e1e5f893f5a7db45e53c51c8051f63", SandboxKey:"/var/run/docker/netns/f774941ab77a", SecondaryIPAddresses:null, SecondaryIPv6Addresses:null }, Path:"/app/vikunja/vikunja", Platform:"linux", Portainer:{ ResourceControl:{ Id:19, ResourceId:"3_vikunja", SubResourceIds:[ ], Type:6, UserAccesses:[ ], TeamAccesses:[ ], Public:false, AdministratorsOnly:true, System:false } }, ProcessLabel:"", ResolvConfPath:"/volume1/@docker/containers/128a8a5e84fa24a4aa4930f2a73aa433589b8b73d22ef85c8d6a30349001c56f/resolv.conf", RestartCount:0, State:{ Dead:false, Error:"", ExitCode:0, FinishedAt:"0001-01-01T00:00:00Z", OOMKilled:false, Paused:false, Pid:29524, Restarting:false, Running:true, StartedAt:"2025-12-01T11:07:19.606940577Z", Status:"running" } } I guess I will give it up for the moment
Author
Owner

@kolaente commented on GitHub (Dec 1, 2025):

The docker inspect tells you that the container communicates something on port 3456, not that the port is exposed to the host (that's a little confusing, but it's about how these images are built). You need to add something like - 3456:3456 to the ports section of your compose file to make port 3456 from the container available on your host.

Check out the docker walkthrough or one of the compose examples in the doc for something that should work out of the box.

@kolaente commented on GitHub (Dec 1, 2025): The docker inspect tells you that the container communicates something on port 3456, not that the port is exposed to the host (that's a little confusing, but it's about how these images are built). You need to add something like `- 3456:3456` to the `ports` section of your compose file to make port 3456 from the container available on your host. Check out the [docker walkthrough](https://vikunja.io/docs/docker-walkthrough/) or one of the [compose examples](https://vikunja.io/docs/full-docker-example) in the doc for something that should work out of the box.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#2436