Vikunja Deployment | Part 6
What is Vikunja?
Vikunja is a self-hosted productivity tool and task manager designed to help individuals and teams stay organized and focused. It is an open-source software that allows users to create and manage tasks, to-do lists, and projects, set deadlines, assign tasks, and collaborate with others in real-time.
Vikunja is designed to be flexible and customizable, so users can adapt it to fit their specific needs and workflows. It offers a range of features, including multiple user accounts, tags and labels, reminders, attachments, comments, and a REST API.
Vikunja is available for free and can be installed on a server or accessed through the cloud. It is built with modern technologies, including Go and Vue.js, and is actively developed and maintained by a community of contributors.
Get 20€ in cloud credits to get started with Hetzner on this link.
Installation
In this case, we will use our Portainer instance to deploy Vikunja stack, but first follow these instructions.
Video Walkthrough
Prepare folders
First, we need to prepare our folders inside of our server.
- Log into your server and create vikunja folder:
mkdir vikunja
cd vikunja
- Create db-data folder & files folder:
mkdir db-data && mkdir files
- Create nginx.conf file:
nano nginx.conf
- Paste following code into nginx.conf file:
server {
listen 80;
location / {
proxy_pass http://frontend:80;
}
location ~* ^/(api|dav|\.well-known)/ {
proxy_pass http://api:3456;
client_max_body_size 20M;
}
}
- Save file and exit
- Get file path and copy it into clipboard. We will need this to edit our installation file:
pwd
Create stack
Open your Portainer instance, create new stack and paste following installation code:
version: '3'
services:
db:
image: mariadb:latest
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: [YOUR VALUE]
MYSQL_USER: [YOUR VALUE]
MYSQL_PASSWORD: [YOUR VALUE]
MYSQL_DATABASE: [YOUR VALUE]
volumes:
- [pwd-path]/db-data:/var/lib/mysql
restart: unless-stopped
api:
image: vikunja/api:latest
environment:
VIKUNJA_DATABASE_HOST: db
VIKUNJA_DATABASE_PASSWORD: [YOUR VALUE]
VIKUNJA_DATABASE_TYPE: mysql
VIKUNJA_DATABASE_USER: [YOUR VALUE]
VIKUNJA_DATABASE_DATABASE: [YOUR VALUE]
VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: 1
VIKUNJA_SERVICE_ENABLEREGISTRATION: 1
VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: 1
VIKUNJA_MAILER_ENABLED: 1
VIKUNJA_MAILER_FORCESSL: 0
VIKUNJA_MAILER_HOST: [YOUR VALUE]
VIKUNJA_MAILER_PORT: 587
VIKUNJA_MAILER_USERNAME: [YOUR VALUE]
VIKUNJA_MAILER_PASSWORD: [YOUR VALUE]
VIKUNJA_MAILER_FROMEMAIL: [YOUR VALUE]
VIKUNJA_SERVICE_FRONTENDURL: [YOUR VALUE]
VIKUNJA_SERVICE_TIMEZONE: [YOUR VALUE]
volumes:
- [pwd-path]/files:/app/vikunja/files
depends_on:
- db
restart: unless-stopped
frontend:
image: vikunja/frontend:latest
restart: unless-stopped
proxy:
image: nginx:latest
ports:
- 8022:80
volumes:
- [pwd-path]/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- api
- frontend
restart: unless-stopped
Replace [YOUR VALUE] with your own values!
Replace [pwd-path] with your copied value!
Make sure everything is alright and click deploy stack.
Create domain
Open your domain manager and point your desired subdomain or domain to your server ip.
Create SSL & Proxy
In NPM create ssl certificate for your desired url and create proxy host with your server ip on port 8022 (if you changed your port, replace it with your value).
Create Vikunja account
Vikunja does not contains any default account, so when you visit your url, you will need to create account.
About Webnestify
Imagine a world where you can focus on your business and less time maintaining your cloud infrastrucure. With Webnestify cloud based solutions, we provide customized solutions for all types of companies to meet their needs; no matter how big or small they may be!
Read our reviews on Trustpilot!
Subscribe to our YouTube channel!
If you need to setup your own Docker instances or need help with security, visit our Docker deployment service.