These examples assume you have an instance of Vikunja running on your server listening on port 3456
. If you've changed this setting, you need to update the server configurations accordingly.
NGINX #
You may need to adjust server_name
and root
accordingly.
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:3456;
client_max_body_size 20M;
}
}
NOTE: If you change the max upload size in Vikunja's settings, you'll need to also change the client_max_body_size
in the nginx proxy config.
NGINX Proxy Manager (NPM) #
Following the Docker Walkthrough guide, you should be able to get Vikunja to work via HTTP connection to your server IP.
From there, all you have to do is adjust the following things:
In docker-compose.yml
#
- Change
VIKUNJA_SERVICE_PUBLICURL:
to your desired domain withhttps://
and/
. - Expose your desired port on host under
ports:
.
example:
vikunja:
image: vikunja/vikunja
environment:
VIKUNJA_SERVICE_PUBLICURL: https://vikunja.your-domain.com/ # change vikunja.your-domain.com to your desired domain/subdomain.
VIKUNJA_DATABASE_HOST: db
VIKUNJA_DATABASE_PASSWORD: secret
VIKUNJA_DATABASE_TYPE: mysql
VIKUNJA_DATABASE_USER: vikunja
VIKUNJA_DATABASE_DATABASE: vikunja
VIKUNJA_SERVICE_JWTSECRET: <your-random-secret>
ports:
- 3456:3456 # Change 3456 on the left to the port of your choice.
volumes:
- ./files:/app/vikunja/files
depends_on:
- db
restart: unless-stopped
In your DNS provider #
Add an A
records that points to your server IP.
You are of course free to change them to whatever domain/subdomain you desire and modify the docker-compose.yml
accordingly.
(Tested on Cloudflare DNS. Settings are different for different DNS provider, in this case the end result should be vikunja.your-domain.com
)
In Nginx Proxy Manager #
Add a Proxy Host as you normally would, and you don't have to add anything extra in Advanced.
Under Details
:
Domain Names:
vikunja.your-domain.com
Scheme:
http
Forward Hostname/IP:
your-server-ip
Forward Port:
3456
Cached Assets:
Optional.
Block Common Exploits:
Toggled.
Websockets Support:
Toggled.
Under SSL
:
SSL Certificate:
However you prefer.
Force SSL:
Toggled.
HTTP/2 Support:
Toggled.
HSTS Enabled:
Toggled.
HSTS Subdomains:
Toggled.
Use a DNS Challenge:
Not toggled.
Email Address for Let's Encrypt:
your-email@email.com
Your Vikunja service should now work and your HTTPS frontend should be able to reach the API after docker-compose
.
Apache #
Put the following config in cat /etc/apache2/sites-available/vikunja.conf
:
<VirtualHost *:80>
ServerName localhost
<Proxy *>
Order Deny,Allow
Allow from all
</Proxy>
ProxyPass / http://localhost:3456/
ProxyPassReverse / http://localhost:3456/
</VirtualHost>
Note: The apache modules proxy
, proxy_http
and rewrite
must be enabled for this.
Caddy #
Use the following Caddyfile to get Vikunja up and running:
vikunja.domainname.tld {
handle /* {
reverse_proxy 127.0.0.1:3456
}
}