Hi, forgive this very beginner question.
I was planning to setup Vikunja locally on a NAS server I was planning to build, but since hardware is expensive right now, plus I need to learn more about cloud architecture etc. for my job prospects, I’m hoping to set it up on an AWS EC2 instance as a temporary solutiuon, more so than anything as a learning exercise.
It’s probably complicating things unecessarily by using docker on the EC2 instance instead of just installing it locally using a yum package on the EC2, but I want to learn as much of these technologies as possible. I then created an AWS RDS instance running postgres and connected them.
I’m not using docker compose, since my understanding is that I don’t need to, since the database instance is created via the AWS management console, rather than as a 2nd docker container running on the EC2 instance.
config.yml looks like this
service:
publicurl: <public_url_of_the_ec2_instance>
database:
type: postgres
host: vikunja-postgres.<myhash>.ap-northeast-1.rds.amazonaws.com:5432/
user: vikunja
database: vikunja
password: <mypw>
sslmode: require
log:
enabled: true
standard: stdout
level: DEBUG
database: stdout
databaselevel: DEBUG
http: stdout
events: stdout
eventslevel: DEBUG
I am able to connect to the database instance using psql from the EC2 instance after getting the ssl certs sorted correctly, and was able to create the vikunja user and database.
[ec2-user@ip-172-31-21-23 vikunja]$ psql "host=$RDSHOST port=5432 user=postgres password=<mypw>"
psql (17.7, server 17.6)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: postgresql)
Type "help" for help.
postgres=> \du
List of roles
Role name | Attributes
-----------------+------------------------------------------------------------
postgres | Create role, Create DB +
| Password valid until infinity
rds_ad | Cannot login
rds_extension | No inheritance, Cannot login
rds_iam | Cannot login
rds_password | Cannot login
rds_replication | Cannot login
rds_reserved | No inheritance, Cannot login
rds_superuser | Cannot login
rdsadmin | Superuser, Create role, Create DB, Replication, Bypass RLS+
| Password valid until infinity
vikunja | Create DB
postgres=> \x on
Expanded display is on.
postgres=> \l vikunja
List of databases
-[ RECORD 1 ]-----+------------
Name | vikunja
Owner | vikunja
Encoding | UTF8
Locale Provider | libc
Collate | en_US.UTF-8
Ctype | en_US.UTF-8
Locale |
ICU Rules |
Access privileges |
however, when I run the container (using the vikunja/vikunja:latest image without modification) I get the following error:
ERROR msg=“could not check for paradedb extension: pq: database \”/vikunja\" does not exist"
[ec2-user@ip-172-31-21-23 vikunja]$ docker run -p 3456:3456 -v $PWD/files:/app/vikunja/files -v $PWD/config.yml:/etc/vikunja/config.yml vikunja/vikunja
2026/02/10 05:42:21 failed to create modcache index dir: mkdir /.cache: permission denied
time=2026-02-10T05:42:21.922Z level=INFO msg="Using config file: /etc/vikunja/config.yml"
time=2026-02-10T05:42:21.925Z level=INFO msg="Running migrations…"
time=2026-02-10T05:42:21.952Z level=ERROR msg="could not check for paradedb extension: pq: database \"/vikunja\" does not exist"
time=2026-02-10T05:42:21.988Z level=INFO msg="[SQL] SELECT tablename FROM pg_tables WHERE schemaname = $1 [public] - 35.439261ms" component=database
time=2026-02-10T05:42:21.988Z level=ERROR msg="Migration failed: pq: database \"/vikunja\" does not exist"
[ec2-user@ip-172-31-21-23 vikunja]$
I don’t think it’s a problem with the connection to the database instance, because if i change the database.password in the config.yml to be wrong, I get an authentication error, which suggests it is indeed connecting to the database:
[ec2-user@ip-172-31-21-23 vikunja]$ docker run -p 3456:3456 -v $PWD/files:/app/vikunja/files -v $PWD/config.yml:/etc/vikunja/config.yml vikunja/vikunja
2026/02/10 05:47:07 failed to create modcache index dir: mkdir /.cache: permission denied
time=2026-02-10T05:47:07.698Z level=INFO msg="Using config file: /etc/vikunja/config.yml"
time=2026-02-10T05:47:07.700Z level=INFO msg="Running migrations…"
time=2026-02-10T05:47:07.732Z level=ERROR msg="could not check for paradedb extension: pq: password authentication failed for user \"vikunja\""
time=2026-02-10T05:47:07.755Z level=INFO msg="[SQL] SELECT tablename FROM pg_tables WHERE schemaname = $1 [public] - 20.320423ms" component=database
time=2026-02-10T05:47:07.755Z level=ERROR msg="Migration failed: pq: password authentication failed for user \"vikunja\""
[ec2-user@ip-172-31-21-23 vikunja]$
It also doesn’t work if I change the both the database.user and database.database to “postgres”. I get the same pq: database \”/postgres\" does not exist"
Any idea what I’m doing wrong here?
Again, I apologize if I’m asking something very basic that might not be related to the application itself, and if it’s inappropriate to post here rather than Stack overflow etc. please let me know.
Thanks!