diff --git a/README.md b/README.md index 09b885e7..7441a74d 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Booksonic](https://github.com/popeen) - A server for streaming your audiobooks - [Bookstack](https://github.com/BookStackApp/BookStack) - Simple, easy-to-use platform for organising and storing information. - [Calibre-Web](https://github.com/janeczku/calibre-web) - Web Ebook Reader -- [Code-Server](https://github.com/coder/code-server) - Web VS Code +- [Code-Server](https://github.com/coder/code-server) - Web VS Code - [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser -- [Firefly III](https://github.com/firefly-iii/firefly-iii) - A personal finances manager +- [Firefly III](https://github.com/firefly-iii/firefly-iii) - A personal finances manager - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [gandi-livedns](https://github.com/jbbodart/gandi-livedns) - Update your Gandi DNS zone records with your WAN IP - [Ghost](https://github.com/TryGhost/Ghost) - Ghost - Turn your audience into a business @@ -49,7 +49,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [PrivateBin](https://github.com/PrivateBin/PrivateBin) - A minimalist, open source online pastebin where the server has zero knowledge of pasted data - [Prowlarr](https://github.com/Prowlarr/Prowlarr/) - A torrent/usenet indexer manager/proxy - [Proxitok](https://github.com/pablouser1/ProxiTok) - Open source alternative frontend for TikTok made using PHP -- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - BitTorrent client +- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - BitTorrent client - [Radarr](https://github.com/Radarr/Radarr) - Movie collection manager for Usenet and BitTorrent users - [Readarr](https://github.com/Readarr/Readarr) - Book Manager and Automation (Sonarr for Ebooks) - [Resilio Sync](https://github.com/bt-sync) - Fast, reliable, and simple file sync and share solution @@ -64,9 +64,10 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Tube Archivist](https://github.com/tubearchivist/tubearchivist) - Your self-hosted YouTube media server - [Uptime Kuma](https://github.com/louislam/uptime-kuma) - A fancy self-hosted monitoring tool - [Vaultwarden](https://github.com/dani-garcia/vaultwarden) - Unofficial Bitwarden compatible server +- [Vikunja](https://kolaente.dev/vikunja/) - The open-source, self-hostable to-do app. Organize everything, on all platforms. - [Wireguard Easy](https://github.com/WeeJeWel/wg-easy) - WireGuard VPN + Web-based Admin UI - [Your Spotify](https://github.com/Yooooomi/your_spotify) - Self hosted Spotify tracking dashboard -- [ZeroTier](https://github.com/zerotier/ZeroTierOne) - Easy to use zero configuration VPN. +- [ZeroTier](https://github.com/zerotier/ZeroTierOne) - Easy to use zero configuration VPN. ## How to sumbit an app diff --git a/apps/vikunja/config.json b/apps/vikunja/config.json new file mode 100644 index 00000000..453fc9c2 --- /dev/null +++ b/apps/vikunja/config.json @@ -0,0 +1,29 @@ +{ + "$schema": "../schema.json", + "name": "Vikunja", + "available": true, + "exposable": true, + "port": 8135, + "id": "vikunja", + "tipi_version": 1, + "version": "0.20.1", + "categories": ["utilities"], + "description": "The Todo-app to organize your life.", + "short_desc": "The Todo-app to organize your life.", + "author": "kolaente", + "source": "https://kolaente.dev/vikunja", + "website": "https://vikunja.io", + "form_fields": [ + { + "type": "random", + "label": "Vikunja database password", + "random": true, + "env_variable": "VIKUNJA_DB_PASSWORD" + }, + { + "type": "random", + "label": "Vikunja jwt secret", + "env_variable": "VIKUNJA_SERVICE_JWTSECRET" + } + ] +} diff --git a/apps/vikunja/data/proxy/nginx.conf b/apps/vikunja/data/proxy/nginx.conf new file mode 100644 index 00000000..b28829f8 --- /dev/null +++ b/apps/vikunja/data/proxy/nginx.conf @@ -0,0 +1,21 @@ +worker_processes 1; + +error_log /var/log/nginx/error.log debug; + +events { + worker_connections 1024; +} + +http { + server { + listen 80; + + location / { + proxy_pass http://vikunja-frontend:80; + } + location ~* ^/(api|dav|\.well-known)/ { + proxy_pass http://vikunja-api:3456; + client_max_body_size 20M; + } + } +} \ No newline at end of file diff --git a/apps/vikunja/docker-compose.yml b/apps/vikunja/docker-compose.yml new file mode 100644 index 00000000..72aa11c7 --- /dev/null +++ b/apps/vikunja/docker-compose.yml @@ -0,0 +1,68 @@ +version: '3.7' + +services: + vikunja-frontend: + depends_on: + - vikunja-api + container_name: vikunja-frontend + image: vikunja/frontend:0.20.1 + restart: unless-stopped + networks: + - tipi_main_network + + vikunja-api: + container_name: vikunja-api + image: vikunja/api:0.20.1 + environment: + VIKUNJA_DATABASE_HOST: vikunja-db + VIKUNJA_DATABASE_PASSWORD: ${VIKUNJA_DB_PASSWORD} + VIKUNJA_DATABASE_TYPE: postgres + VIKUNJA_DATABASE_USER: tipi + VIKUNJA_SERVICE_JWTSECRET: ${VIKUNJA_SERVICE_JWTSECRET} + VIKUNJA_SERVICE_FRONTENDURL: ${APP_PROTOCOL:-http}://${APP_DOMAIN}/ + volumes: + - ${APP_DATA_DIR}/data/files:/app/vikunja/files + restart: unless-stopped + depends_on: + vikunja-db: + condition: service_healthy + networks: + - tipi_main_network + + vikunja-db: + container_name: vikunja-db + image: postgres:14 + environment: + POSTGRES_PASSWORD: ${VIKUNJA_DB_PASSWORD} + POSTGRES_USER: tipi + POSTGRES_DB: vikunja + volumes: + - ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] + interval: 5s + timeout: 5s + retries: 5 + networks: + - tipi_main_network + + vikunja: + container_name: vikunja + image: nginx + ports: + - ${APP_PORT}:80 + volumes: + - ${APP_DATA_DIR}/data/proxy/nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - vikunja-api + - vikunja-frontend + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.vikunja.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.vikunja.entrypoints: websecure + traefik.http.routers.vikunja.service: vikunja + traefik.http.routers.vikunja.tls.certresolver: myresolver + traefik.http.services.vikunja.loadbalancer.server.port: 80 \ No newline at end of file diff --git a/apps/vikunja/metadata/description.md b/apps/vikunja/metadata/description.md new file mode 100644 index 00000000..b95959e8 --- /dev/null +++ b/apps/vikunja/metadata/description.md @@ -0,0 +1,11 @@ +## The Todo-app to organize your life. + +- Create TODO lists with tasks +- Reminder for tasks +- Namespaces: A "group" which bundles multiple lists +- Share lists and namespaces with teams and users with granular permissions +- Plenty of details for tasks + +See the [features page](https://vikunja.cloud/features) on our website for a more exaustive list or try it on [try.vikunja.io](try.vikunja.io)! + +![](https://vikunja.io/images/vikunja/09-task-detail-dark.png) diff --git a/apps/vikunja/metadata/logo.jpg b/apps/vikunja/metadata/logo.jpg new file mode 100644 index 00000000..0fedf2de Binary files /dev/null and b/apps/vikunja/metadata/logo.jpg differ