Coti Lab
Vikunja 셀프호스팅 할 일 관리 앱
셀프호스팅

Vikunja: 셀프호스팅 할 일 관리 앱 만들기

Coti
4분

Todoist 유료 플랜은 매달 결제되고, 내가 만든 할 일 목록은 결국 회사 서버 어딘가에 쌓여요. Vikunja는 이런 구독형 할 일 관리 서비스의 오픈소스 대안으로, Go와 Vue로 만들어져 라즈베리파이 수준의 저사양 기기에서도 가볍게 돌아가고 프로젝트, 라벨, 칸반, 반복 작업까지 상용 서비스에 뒤지지 않는 기능을 갖추고 있어요. 그렇다면 Vikunja로 셀프호스팅 할 일 관리 앱을 어떻게 만들 수 있을까요?

Vikunja란 무엇인가

Vikunja는 Todoist나 Asana처럼 프로젝트 단위로 할 일을 관리하는 오픈소스 작업 관리 도구예요. 백엔드는 Go로, 프런트엔드는 Vue.js로 작성되어 있어서 리소스를 많이 잡아먹지 않고, 단일 사용자용 개인 할 일 목록부터 여러 명이 함께 쓰는 팀 프로젝트까지 같은 앱 안에서 커버할 수 있어요. 이름 자체는 남아메리카에 사는 라마과 동물 “비쿠냐”에서 따왔는데, 가볍고 실용적인 도구를 지향한다는 프로젝트 성격과 잘 어울리는 이름이에요.

프로젝트, 라벨, 칸반으로 작업 정리하기

작업은 먼저 프로젝트 단위로 나뉘고, 그 아래 개별 작업(Task)이 들어가는 구조예요. 여기서 끝이 아니에요. 각 작업에는 라벨을 여러 개 붙일 수 있고, 담당자를 지정하거나 우선순위와 마감일을 설정할 수도 있어요. 같은 프로젝트를 목록 보기, 칸반 보드, 표, 간트 차트까지 여러 방식으로 전환하며 볼 수 있다는 점도 특징인데, 할 일이 많이 쌓인 날은 칸반으로 진행 상태를 옮겨가며 관리하고 마감일이 중요한 프로젝트는 간트 차트로 전체 일정을 조망하는 식으로 상황에 맞춰 화면만 바꿔 쓸 수 있어요.

반복 작업으로 집안일 자동화하기

분리수거, 정수기 필터 교체, 정기 결제 확인처럼 주기적으로 돌아오는 작업을 매번 손으로 다시 만드는 건 번거로운 일이에요. Vikunja의 반복 작업 기능을 쓰면 “매주 화요일”, “30일마다”처럼 주기를 지정해두고, 작업을 완료 처리하는 순간 다음 주기의 작업이 자동으로 다시 생성돼요. 한 번 설정해두면 그 다음부터는 신경 쓸 필요 없이 정해진 리듬대로 할 일 목록에 다시 나타나는 구조라, 집안일이나 정기 점검처럼 잊어버리기 쉬운 작업일수록 효과가 커요.

CalDAV로 휴대폰 기본 앱과 동기화하기

Vikunja는 CalDAV 표준을 지원해서, 전용 앱을 설치하지 않아도 아이폰의 미리 알림 앱이나 안드로이드의 CalDAV 호환 캘린더 앱에 서버 주소만 등록하면 할 일이 자동으로 동기화돼요. 출퇴근길에 휴대폰 기본 앱으로 빠르게 할 일을 추가하고, 집에 돌아와 웹 UI로 정리하는 흐름도 매끄럽게 이어져요. 별도 앱 설치 없이도 이미 매일 쓰는 기본 앱 안에서 셀프호스팅 서버와 연결된다는 점이, 결국 “새 앱을 또 설치해야 하나”라는 진입 장벽 자체를 없애줘요.

가족·팀과 함께 쓰기

프로젝트별로 다른 사용자나 팀을 초대해서 함께 작업할 수 있고, 초대받은 사람마다 읽기 전용 또는 편집 가능 권한을 다르게 부여할 수 있어요. 가족 공동 프로젝트(장보기 목록, 여행 준비물)는 모두가 편집할 수 있게 열어두고, 개인 업무 프로젝트는 나만 볼 수 있게 잠가두는 식으로 하나의 계정 안에서 공유 범위를 자유롭게 나눌 수 있어요. 결론부터 말하면 ‘네’예요 — Vikunja 하나로 개인용과 공유용 할 일 관리를 동시에 커버할 수 있어요.

Docker Compose로 설치하기

Vikunja는 API 서버와 프런트엔드를 하나의 이미지로 묶어 배포하는 vikunja/vikunja 이미지를 쓰면 간단하게 띄울 수 있어요.

services:
  vikunja:
    image: vikunja/vikunja:latest
    environment:
      - VIKUNJA_SERVICE_PUBLICURL=https://tasks.example.com/
      - VIKUNJA_DATABASE_TYPE=sqlite
      - VIKUNJA_DATABASE_PATH=/db/vikunja.db
      - VIKUNJA_SERVICE_JWTSECRET=changeme
    ports:
      - "3456:3456"
    volumes:
      - ./vikunja/db:/db
      - ./vikunja/files:/app/vikunja/files
    restart: unless-stopped

VIKUNJA_SERVICE_JWTSECRET 값은 세션 토큰 서명에 쓰이는 값이라 반드시 무작위 문자열로 바꿔야 해요. 데이터베이스는 예시처럼 SQLite로 가볍게 시작할 수도 있고, 사용자가 많아지면 PostgreSQL로 옮겨갈 수도 있어요.

결론

Vikunja는 구독료 없이 프로젝트, 칸반, 반복 작업, CalDAV 동기화까지 상용 서비스 수준의 기능을 제공하는 오픈소스 할 일 관리 앱이에요. 매달 빠져나가던 구독료 대신 한 번 설정해두고 나면, 휴대폰 기본 앱과 자연스럽게 이어지는 동기화 덕분에 도구를 바꿨다는 느낌조차 크게 들지 않아요. 개인 할 일은 Vikunja로, 서비스 자격 증명은 Vaultwarden으로 나눠 관리하면 홈랩 생산성 도구 구성이 한층 더 탄탄해져요.

자주 묻는 질문

Q1. Vikunja는 무료로 셀프호스팅할 수 있나요?

네, Vikunja는 오픈소스 프로젝트라 소스코드를 받아 직접 서버에 설치하면 완전히 무료로 쓸 수 있어요. 직접 호스팅이 부담스럽다면 유료 클라우드 버전도 별도로 제공돼요.

Q2. 휴대폰 기본 할 일 앱과 자동으로 동기화되나요?

네, Vikunja는 CalDAV를 지원해서 아이폰의 미리 알림 앱이나 안드로이드의 CalDAV 호환 앱에 서버 주소를 등록하면 별도 앱 설치 없이도 할 일이 자동으로 동기화돼요.

Q3. 칸반 보드와 목록 보기 중 하나만 골라야 하나요?

아니요, Vikunja는 같은 프로젝트를 목록, 칸반 보드, 표, 간트 차트 등 여러 보기 방식으로 전환하며 볼 수 있어요. 데이터는 하나인데 상황에 맞는 화면만 바꿔가며 쓸 수 있어요.

Q4. 매주 반복되는 작업을 매번 새로 만들어야 하나요?

아니요, 반복 작업 기능을 설정해두면 완료 처리할 때마다 다음 주기의 작업이 자동으로 다시 생성돼요. 청소, 결제, 정기 점검처럼 반복되는 집안일을 등록해두기에 적합해요.

Q5. 가족이나 팀원과 같은 프로젝트를 공유할 수 있나요?

네, 프로젝트별로 다른 사용자나 팀을 초대해서 함께 작업할 수 있고 사용자마다 읽기·쓰기 권한을 다르게 부여할 수 있어요. 가족 공동 프로젝트와 개인 프로젝트를 한 계정 안에서 나눠 관리할 수 있어요.

Q6. 라벨이나 마감일로 작업을 필터링할 수 있나요?

네, Vikunja는 라벨, 담당자, 마감일, 우선순위를 조합한 저장된 필터를 만들 수 있어요. 여러 프로젝트에 흩어진 할 일 중 오늘 마감인 것만 모아보는 식의 활용이 가능해요.

C
Coti 백엔드 개발자
프로필

댓글

첫 번째 댓글을 남겨보세요!