Cài Vikunja trên Ubuntu Server
Vikunja là một ứng dụng to-do list mã nguồn mở, tự lưu trữ và hỗ trợ trên rất nhiều nền tảng.
Ưu điểm của Vikunja
- Mã nguồn mở.
- Miễn phí, miễn phí và miễn phí.
- Self Hosted, tự lưu trữ trên Server cá nhân.
- Đẹp, mình nhìn thích nhất là đẹp 😁😁😁🤣🤣🤣.
Yêu cầu hệ thống
- Ubuntu Server cài theo hướng dẫn.
- Nginx làm Reverse Proxy, cài theo hướng dẫn.
- Tên miền với chứng chỉ SSL đã được lấy từ Let's Encrypt, xem thêm hướng dẫn.
- Gzip
sudo apt install gzip
Cài đặt
Vikunja yêu cầu 2 thành phần API và Frontend, nếu bạn sử dụng Vikunja trên máy tính Linux hoặc Windows thì không cần cài Frontend. Mình sử dụng MAC và thường dùng nhiều trên di động nên mình cài thêm Frontend để truy cập qua trình duyệt.
Cài API
Vikunja có nhiều gói tùy hệ điều hành, chúng ta dùng Ubuntu Server nên tải về gói .deb mới nhất và tiến hành cài đặt.
wget https://dl.vikunja.io/api/0.20.2/vikunja-0.20.2-amd64.deb
sudo dpkg -i vikunja-0.20.2-amd64.deb
sudo systemctl start vikunja
Chờ một lát để quá trình cài đặt thực hiện, xác nhận cổng mà Vikunja đang sử dụng
netstat -tlpn
Như mặc định thì là ở cổng 3456, hãy nhớ số cổng này.
Cài Frontend
Tải về phiên bản Frontend tương ứng với API(khi mình cài thì API là phiên bản 0.20.2 mà Frontend lại là phiên bản 0.20.3, mà mình sử dụng cũng không vấn đề gì phát sinh).
wget https://dl.vikunja.io/frontend/vikunja-frontend-0.20.3.zip
Tạo thư mục để chứa vikunja.com và giải nén vào đó. Di chuyển thư mục đó về /var/www/
sudo mkdir vikunja.com
sudo unzip vikunja-frontend-0.20.3.zip -d vikunja.com
sudo mv vikunja.com /var/www/
Cấu hình Nginx
Tạo file cấu hình Nginx
sudo nano /etc/nginx/sites-available/vikunja.com
Và nhập vào nội dung sau
#gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml;
server {
listen 80;
server_name vikunja.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name vikunja.com;
location / {
root /var/www/vikunja.com;
try_files $uri $uri/ /;
index index.htm index.html;
}
location ~* ^/(api|dav|\.well-known)/ {
proxy_pass http://localhost:3456;
client_max_body_size 20M;
}
ssl_certificate /etc/letsencrypt/live/vikunja.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vikunja.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Ánh xạ, kiểm tra cấu hình không lỗi thì khởi động lại Nginx
sudo ln -s /etc/nginx/sites-available/vikunja.com /etc/nginx/sites-enabled/vikunja.com
sudo nginx -t
sudo systemctl restart nginx
Thường thì sau khi cấu hình Nginx như trên xong, chúng ta đã có API chạy ở địa chỉ *vikunja.com/api/v1, truy cập vào hiện ra
{"message":"missing or malformed jwt"}
hoặc địa chỉ vikunja.com/api/v1/info hiện ra
{"version":"v0.20.2","frontend_url":"","motd":"","link_sharing_enabled":true,"max_file_size":"20MB","registration_enabled":true,"available_migrators":["vikunja-file","ticktick"],"task_attachments_enabled":true,"enabled_background_providers":["upload"],"totp_enabled":true,"legal":{"imprint_url":"","privacy_policy_url":""},"caldav_enabled":true,"auth":{"local":{"enabled":true},"openid_connect":{"enabled":false,"redirect_url":"\u003cfrontend url\u003e","providers":null}},"email_reminders_enabled":true,"user_deletion_enabled":true,"task_comments_enabled":true}
là API của chúng ta đã hoạt động và chúng ta có thể có quyền truy cập qua Tên miền.
Chỉnh sửa index.html ở Frontend để có quyền truy cập vào API
Giờ thì bạn đã cài đặt thành công, tuy nhiên nếu truy cập vào vikunja.com lúc này sẽ hoạt động không chính xác, vì chúng ta chưa cấu hình địa chỉ của API cho Frontend kết nối đến.
Để kết nối được, chúng ta sửa file index.html
sudo nano /var/www/vikunja.com/index.html
tìm phần
window.API_URL = 'http://localhost:3456/api/v1'
và thay bằng
window.API_URL = 'https://vikunja.com/api/v1'
Lưu file và truy cập. Đăng ký tài khoản và sử dụng thôi.
Tắt chức năng đăng ký
Vì mình sử dụng cho cá nhân mình nên mình tắt chức năng đăng ký đi cũng được.
Mở file cấu hình của Vikunja API
sudo nano /etc/vikunja/config.yml
Tìm phần
enableregistration: true
và thay true bằng false
enableregistration: false
Giờ khi người dùng mới đăng ký, chỉ hiện ra Not Found mà thôi.
Chúc các bạn thành công!. Có gì không hiểu cứ để lại comment nhé