diff --git a/.github/workflows/release-candidate.yml b/.github/workflows/release-candidate.yml index 1f47ef3d..55cbf3b0 100644 --- a/.github/workflows/release-candidate.yml +++ b/.github/workflows/release-candidate.yml @@ -1,9 +1,9 @@ name: Release candidate on: - pull_request: + push: branches: - - master + - release/* jobs: # Build images and publish RCs to DockerHub diff --git a/.gitignore b/.gitignore index 5cd5feea..3463b851 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,25 @@ .pnpm-debug.log -.env .env* github.secrets node_modules/ -nginx/* -letsencrypt/* app-data/* traefik/ssl/* !traefik/ssl/.gitkeep !app-data/.gitkeep -!letsencrypt/mkcert/.gitkeep state/* !state/.gitkeep -tipi.config.json - -# Commit empty directories -!nignx/.gitkeep - media/data/movies/* media/data/tv/* +media/data/books/* !media/data/movies/.gitkeep !media/data/tv/.gitkeep +!media/data/books/metadata.db -media/torrents/* -!media/torrents/.gitkeep \ No newline at end of file +media/torrents/complete/* +!media/torrents/complete/.gitkeep +media/torrents/incomplete/* +!media/torrents/incomplete/.gitkeep +media/torrents/watch/* +!media/torrents/watch/.gitkeep diff --git a/README.md b/README.md index f66e8aa5..8da4def8 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Tipi is a personal homeserver orchestrator. It is running docker containers unde ## Apps available - [Calibre-Web](https://github.com/janeczku/calibre-web) - Web Ebook Reader -- [Code-Server](https://github.com/filebrowser/filebrowser) - Web VS Code +- [Code-Server](https://github.com/coder/code-server) - Web VS Code - [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser - [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator - [Invidious](https://github.com/iv-org/invidious) - An alternative front-end to YouTube @@ -32,6 +32,11 @@ Tipi is a personal homeserver orchestrator. It is running docker containers unde - [Transmission](https://github.com/transmission/transmission) - Fast, easy, and free BitTorrent client - [Wireguard Easy](https://github.com/WeeJeWel/wg-easy) - WireGuard VPN + Web-based Admin UI - [Adguard Home](https://github.com/AdguardTeam/AdGuardHome) - Adguard Home DNS adblocker +- [Libreddit](https://github.com/spikecodes/libreddit) - Private front-end for Reddit +- [Nitter](https://github.com/zedeus/nitter) - Alternative Twitter front-end +- [Vaultwarden](https://github.com/dani-garcia/vaultwarden) - Unofficial Bitwarden compatible server +- [Prowlarr](https://github.com/Prowlarr/Prowlarr/) - A torrent/usenet indexer manager/proxy +- [Gitea](https://github.com/go-gitea/gitea) - Gitea - A painless self-hosted Git service. ## 馃洜 Installation ### Installation Requirements - Ubuntu 18.04 LTS or higher (or Debian 10) diff --git a/VERSION b/VERSION index def9a015..341cf11f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.5 \ No newline at end of file +0.2.0 \ No newline at end of file diff --git a/apps/adguard/config.json b/apps/adguard/config.json index f379ada6..d251ea57 100644 --- a/apps/adguard/config.json +++ b/apps/adguard/config.json @@ -6,11 +6,11 @@ "description": "Adguard is the best way to get rid of annoying ads and online tracking and protect your computer from malware. Make your web surfing fast, safe and ad-free.", "short_desc": "World's most advanced adblocker!", "author": "ArneNaessens", - "source": "https://github:com/AdguardTeam", + "source": "https://github.com/AdguardTeam", "image": "https://avatars.githubusercontent.com/u/8361145?s=200&v=4", + "cagegories": ["network", "security"], "requirements": { "ports": [53] }, - "form_fields": { - } + "form_fields": {} } diff --git a/apps/adguard/docker-compose.yml b/apps/adguard/docker-compose.yml index aeb0062a..1953149c 100644 --- a/apps/adguard/docker-compose.yml +++ b/apps/adguard/docker-compose.yml @@ -1,6 +1,5 @@ -version: "3.5" - +version: "3.7" services: adguardhome: image: adguard/adguardhome:v0.107.6 diff --git a/apps/adguard/metadata/description.md b/apps/adguard/metadata/description.md new file mode 100644 index 00000000..b88c68d3 --- /dev/null +++ b/apps/adguard/metadata/description.md @@ -0,0 +1,3 @@ +Network-wide ads & trackers blocking DNS server + +AdGuard Home is a network-wide software for blocking ads and tracking. After you set it up, it'll cover all your home devices, and you won't need any client-side software for that. Learn more on our official Github repository. diff --git a/apps/adguard/metadata/logo.png b/apps/adguard/metadata/logo.png new file mode 100644 index 00000000..0bde6eda Binary files /dev/null and b/apps/adguard/metadata/logo.png differ diff --git a/apps/anonaddy/docker-compose.yml b/apps/anonaddy/docker-compose.yml index a7c88dd9..494c65d9 100644 --- a/apps/anonaddy/docker-compose.yml +++ b/apps/anonaddy/docker-compose.yml @@ -1,6 +1,4 @@ - -version: "3.5" - +version: "3.7" services: db: image: mariadb:10.5 @@ -80,4 +78,4 @@ services: # traefik.http.routers.anonaddy.entrypoints: http # traefik.http.routers.anonaddy.service: anonaddy - # traefik.http.services.anonaddy.loadbalancer.server.port: 8000 \ No newline at end of file + # traefik.http.services.anonaddy.loadbalancer.server.port: 8000 diff --git a/apps/calibre-web/docker-compose.yml b/apps/calibre-web/docker-compose.yml index 5b6225fe..a8ee7ed7 100644 --- a/apps/calibre-web/docker-compose.yml +++ b/apps/calibre-web/docker-compose.yml @@ -1,4 +1,4 @@ -version: "2.1" +version: "3.7" services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest @@ -9,9 +9,9 @@ services: - TZ=${TZ} volumes: - ${APP_DATA_DIR}/data/config:/config - - ${APP_DATA_DIR}/data/books:/books + - ${ROOT_FOLDER_HOST}/media/data/books:/books ports: - ${APP_PORT}:8083 restart: unless-stopped networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/code-server/docker-compose.yml b/apps/code-server/docker-compose.yml index d2d72b9e..b8948432 100644 --- a/apps/code-server/docker-compose.yml +++ b/apps/code-server/docker-compose.yml @@ -1,4 +1,4 @@ -version: "2.1" +version: "3.7" services: code-server: image: lscr.io/linuxserver/code-server:latest @@ -16,4 +16,4 @@ services: - ${APP_PORT}:8443 restart: unless-stopped networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/filebrowser/docker-compose.yml b/apps/filebrowser/docker-compose.yml index 0e9e526a..5e1d0cf1 100644 --- a/apps/filebrowser/docker-compose.yml +++ b/apps/filebrowser/docker-compose.yml @@ -1,3 +1,4 @@ +version: "3.7" services: filebrowser: container_name: filebrowser diff --git a/apps/gitea/config.json b/apps/gitea/config.json new file mode 100644 index 00000000..7abec2a6 --- /dev/null +++ b/apps/gitea/config.json @@ -0,0 +1,12 @@ +{ + "name": "Gitea", + "port": 8108, + "available": true, + "id": "gitea", + "description": "Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket, and GitLab. Gitea is a fork of Gogs. See the Gitea Announcement blog post to read about the justification for a fork.", + "short_desc": "Gitea - Git with a cup of tea 路 A painless self-hosted Git service. 路 Cross-platform 路 Easy to install 路 Lightweight 路 Open Source.", + "author": "go-gitea", + "source": "https://github.com/go-gitea/gitea", + "image": "https://avatars.githubusercontent.com/u/12724356?s=200&v=4", + "form_fields": {} +} diff --git a/apps/gitea/data/gitea/gitea/conf/app.ini b/apps/gitea/data/gitea/gitea/conf/app.ini new file mode 100644 index 00000000..8056f275 --- /dev/null +++ b/apps/gitea/data/gitea/gitea/conf/app.ini @@ -0,0 +1,88 @@ +APP_NAME = Gitea: Git with a cup of tea +RUN_MODE = prod +RUN_USER = git + +[repository] +ROOT = /data/git/repositories + +[repository.local] +LOCAL_COPY_PATH = /data/gitea/tmp/local-repo + +[repository.upload] +TEMP_PATH = /data/gitea/uploads + +[server] +APP_DATA_PATH = /data/gitea +DOMAIN = localhost +SSH_DOMAIN = localhost +HTTP_PORT = 3000 +ROOT_URL = http://localhost:8108/ +DISABLE_SSH = false +SSH_PORT = 22 +SSH_LISTEN_PORT = 22 +LFS_START_SERVER = true +LFS_CONTENT_PATH = /data/git/lfs +LFS_JWT_SECRET = wo2G20l0nGsspUp8xsLNSNF7H8U-GQUVth5gj_q5cDk +OFFLINE_MODE = false + +[database] +PATH = /data/gitea/gitea.db +DB_TYPE = postgres +HOST = gitea-db:5432 +NAME = gitea +USER = gitea +PASSWD = gitea +LOG_SQL = false +SCHEMA = +SSL_MODE = disable +CHARSET = utf8 + +[indexer] +ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve + +[session] +PROVIDER_CONFIG = /data/gitea/sessions +PROVIDER = file + +[picture] +AVATAR_UPLOAD_PATH = /data/gitea/avatars +REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars +DISABLE_GRAVATAR = false +ENABLE_FEDERATED_AVATAR = true + +[attachment] +PATH = /data/gitea/attachments + +[log] +MODE = console +LEVEL = info +ROUTER = console +ROOT_PATH = /data/gitea/log + +[security] +INSTALL_LOCK = true +SECRET_KEY = +REVERSE_PROXY_LIMIT = 1 +REVERSE_PROXY_TRUSTED_PROXIES = * +INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NTMyODU5ODh9.l7fPuVA8LSHZvdBum8YDrH47RZjEx_cZLbswO5pMDk8 +PASSWORD_HASH_ALGO = pbkdf2 + +[service] +DISABLE_REGISTRATION = false +REQUIRE_SIGNIN_VIEW = false +REGISTER_EMAIL_CONFIRM = false +ENABLE_NOTIFY_MAIL = false +ALLOW_ONLY_EXTERNAL_REGISTRATION = false +ENABLE_CAPTCHA = false +DEFAULT_KEEP_EMAIL_PRIVATE = false +DEFAULT_ALLOW_CREATE_ORGANIZATION = true +DEFAULT_ENABLE_TIMETRACKING = true +NO_REPLY_ADDRESS = noreply.localhost + +[mailer] +ENABLED = false + +[openid] +ENABLE_OPENID_SIGNIN = true +ENABLE_OPENID_SIGNUP = true + diff --git a/apps/gitea/docker-compose.yml b/apps/gitea/docker-compose.yml new file mode 100644 index 00000000..50dc6a48 --- /dev/null +++ b/apps/gitea/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.7" + +services: + gitea: + image: gitea/gitea:1.16.8 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=gitea-db:5432 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + restart: unless-stopped + networks: + - tipi_main_network + volumes: + - ${APP_DATA_DIR}/data/gitea:/data + ports: + - ${APP_PORT}:3000 + - "222:22" + depends_on: + - gitea-db + + gitea-db: + container_name: gitea-db + image: postgres:14 + restart: unless-stopped + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=gitea + - POSTGRES_DB=gitea + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + networks: + - tipi_main_network diff --git a/apps/homarr/docker-compose.yml b/apps/homarr/docker-compose.yml index 9f374ab7..8181d1a0 100644 --- a/apps/homarr/docker-compose.yml +++ b/apps/homarr/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3.7" services: homarr: container_name: homarr @@ -9,4 +9,4 @@ services: ports: - ${APP_PORT}:7575 networks: - - tipi_main_network \ No newline at end of file + - tipi_main_network diff --git a/apps/invidious/config.json b/apps/invidious/config.json index 79cf2077..e0bcb97d 100644 --- a/apps/invidious/config.json +++ b/apps/invidious/config.json @@ -3,9 +3,9 @@ "available": true, "port": 8095, "id": "invidious", - "description": "", - "short_desc": "", - "author": "", + "description": "Invidious is an open source alternative front-end to YouTube.", + "short_desc": "An alternative front-end to YouTube", + "author": "iv-org", "source": "https://github.com/iv-org/invidious", "image": "https://raw.githubusercontent.com/iv-org/invidious/master/assets/invidious-colored-vector.svg", "form_fields": {} diff --git a/apps/invidious/data/init/init-invidious-db.sh b/apps/invidious/data/init/init-invidious-db.sh new file mode 100644 index 00000000..c86823dc --- /dev/null +++ b/apps/invidious/data/init/init-invidious-db.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -eou pipefail + +psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB"