├── .github ├── actions │ └── collect-changes │ │ └── action.yaml ├── renovate.json5 ├── scripts │ ├── fetch.mjs │ ├── fetch.sh │ ├── published.mjs │ ├── published.sh │ └── upstream.sh └── workflows │ ├── action-image-build.yaml │ ├── image-rebuild.yaml │ ├── meta-invalid-issue.yaml │ ├── meta-stale.yaml │ ├── meta-support.yaml │ ├── release-manual.yaml │ ├── release-schedule.yaml │ └── renovate-schedule.yaml ├── .vscode └── settings.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── Taskfile.yml ├── apps ├── aiolists │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── elfhosted-branding.html │ └── metadata.json ├── aiostreams │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── elfhosted-branding.html │ └── metadata.json ├── alpine-s6-overlay │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── alpine │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ ├── node │ │ ├── Dockerfile │ │ └── goss.yaml │ └── scripts │ │ ├── elfscript.sh │ │ ├── greeting.sh │ │ ├── sleep.sh │ │ ├── umask.sh │ │ └── vpn.sh ├── apprise-api │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── aria2 │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── ariang │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── files │ │ └── nginx.conf │ └── metadata.json ├── arrtools │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ └── root │ │ ├── entrypoint.sh │ │ ├── home │ │ └── elfie │ │ │ └── .config │ │ │ └── fish │ │ │ ├── conf.d │ │ │ └── change-to-config.fish │ │ │ └── config.fish │ │ ├── launch-tmux.sh │ │ └── restricted.tmux.conf ├── audiobookbay-automated │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── audiobookrequest │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── audiobookshelf │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── autoscan │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── bazarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── bluesky-pds │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ └── root │ │ ├── etc │ │ └── s6-overlay │ │ │ └── s6-rc.d │ │ │ ├── pds-cli │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ ├── pds │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ └── user │ │ │ └── contents.d │ │ │ ├── pds │ │ │ └── pds-cli │ │ ├── home │ │ └── elfie │ │ │ └── .config │ │ │ └── fish │ │ │ └── config.fish │ │ ├── launch-tmux.sh │ │ ├── pds-cli.sh │ │ ├── restricted.tmux.conf │ │ └── usr │ │ └── local │ │ └── bin │ │ └── pdsadmin ├── booklore │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── byparr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── calibre-web-automated │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── cinesync │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── cinesync.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── cli_debrid │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── metadata.json │ └── root │ │ └── etc │ │ └── s6-overlay │ │ └── s6-rc.d │ │ ├── primary │ │ ├── dependencies.d │ │ │ └── base │ │ ├── run │ │ └── type │ │ ├── secondary │ │ ├── dependencies.d │ │ │ └── base │ │ ├── run │ │ └── type │ │ └── user │ │ └── contents.d │ │ ├── primary │ │ └── secondary ├── cloudflarebypassforscraping │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── codeserver │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── comet │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── no-warp-necessary.patch ├── concourse-git-semver-tag-resource │ ├── Dockerfile │ ├── assets │ │ ├── askpass.sh │ │ ├── check │ │ ├── common.sh │ │ ├── in │ │ ├── out │ │ └── utils.sh │ ├── ci │ │ └── latest.sh │ └── metadata.json ├── concourse-github-pr-resource │ ├── .github │ │ └── workflows │ │ │ └── test.yml │ ├── .gitignore │ ├── .travis.yml │ ├── .vscode │ │ └── launch.json │ ├── CODEOWNERS │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── Taskfile.yml │ ├── buildAndPushDockerhub.sh │ ├── check.go │ ├── check_test.go │ ├── ci │ │ └── latest.sh │ ├── cmd │ │ ├── check │ │ │ └── main.go │ │ ├── in │ │ │ └── main.go │ │ └── out │ │ │ └── main.go │ ├── common.go │ ├── e2e-opendoor │ │ ├── pipeline.yaml │ │ ├── request.README │ │ ├── request.check.json │ │ ├── request.in.json │ │ ├── update_pipeline.sh │ │ ├── value-od-git-resource-debug.json │ │ ├── value-od-github-pr-resource-debug.json │ │ └── value-od-github-pr-resource-min-remaining-threshold-before-using-access-token-additional.json │ ├── e2e │ │ ├── e2e_test.go │ │ └── pipeline.yml │ ├── fakes │ │ ├── fake_git.go │ │ └── fake_github.go │ ├── git.go │ ├── github.go │ ├── go.mod │ ├── go.sum │ ├── in.go │ ├── in_test.go │ ├── metadata.json │ ├── models.go │ ├── out.go │ ├── out_test.go │ ├── scripts │ │ ├── askpass.sh │ │ └── install_git_crypt.sh │ └── tools │ │ └── tools.go ├── concourse-slack-notification-resource │ ├── .dockerignore │ ├── Dockerfile │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── check │ ├── ci │ │ └── latest.sh │ ├── in │ ├── metadata.json │ ├── out │ └── test │ │ ├── .env │ │ ├── all.sh │ │ ├── attachment-sample.txt │ │ ├── attachments_no_text.out │ │ ├── attachments_no_text_and_attachments_file.out │ │ ├── attachments_with_text.out │ │ ├── attachments_with_text_and_attachments_file.out │ │ ├── combined_text_template_and_file.out │ │ ├── combined_text_template_and_file_empty.out │ │ ├── combined_text_template_and_file_missing.out │ │ ├── env_file.out │ │ ├── metadata.out │ │ ├── metadata_with_payload.out │ │ ├── multiple_channels.out │ │ ├── no_attachments_no_text_and_attachments_file.out │ │ ├── no_attachments_with_text_and_attachments_file.out │ │ ├── sample-empty.txt │ │ ├── sample.txt │ │ ├── text.out │ │ ├── text_file.out │ │ ├── text_file_empty.out │ │ └── text_file_empty_suppress.out ├── csi-rclone │ ├── Dockerfile │ ├── ci │ │ └── latest.sh │ └── metadata.json ├── cwa-downloader │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── cyberflix-server │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── dante │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── conf │ │ └── sockd-no-auth.conf │ └── metadata.json ├── davdebrid │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── davio │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── debrid-media-manager │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ └── scrapers │ │ └── Dockerfile ├── debridav │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── increase-db-pool-size.patch │ └── metadata.json ├── decluttarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── decluttarr.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── decypharr │ ├── Dockerfile │ ├── beta │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.json │ └── metadata.json ├── discussio │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── dispatcharr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── doplarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── doplarr.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── emby │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── fakearr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── ffprobe-shim │ ├── Dockerfile │ ├── ci │ │ └── latest.sh │ └── metadata.json ├── filebot-node │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── filebrowser │ ├── Dockerfile │ ├── Dockerfile copy │ ├── branding │ │ ├── custom.css │ │ └── img │ │ │ └── logo.svg │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ ├── root │ │ ├── elfterm.sh │ │ ├── etc │ │ │ └── s6-overlay │ │ │ │ └── s6-rc.d │ │ │ │ ├── elfterm │ │ │ │ ├── dependencies.d │ │ │ │ │ └── base │ │ │ │ ├── run │ │ │ │ └── type │ │ │ │ ├── filebrowser │ │ │ │ ├── dependencies.d │ │ │ │ │ └── base │ │ │ │ ├── run │ │ │ │ └── type │ │ │ │ └── user │ │ │ │ └── contents.d │ │ │ │ ├── elfterm │ │ │ │ └── filebrowser │ │ ├── home │ │ │ └── elfie │ │ │ │ └── .config │ │ │ │ └── fish │ │ │ │ ├── conf.d │ │ │ │ └── change-to-storage.fish │ │ │ │ └── config.fish │ │ ├── launch-tmux.sh │ │ └── restricted.tmux.conf │ └── scripts │ │ └── claim-plex-server.sh ├── flaresolverr │ ├── Dockerfile │ ├── Dockerfile copy │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── flixio-api │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── formulio │ ├── Dockerfile │ ├── branding │ │ └── index.html │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── gatus │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── ghost │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ └── post_ghost_config.sh ├── gluetun │ ├── Dockerfile │ ├── ci │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── gotosocial │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── root │ │ ├── config │ │ └── config.yaml │ │ ├── etc │ │ └── s6-overlay │ │ │ └── s6-rc.d │ │ │ ├── gotosocial-cli │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ ├── gotosocial │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ └── user │ │ │ └── contents.d │ │ │ ├── gotosocial │ │ │ └── gotosocial-cli │ │ ├── gotosocial-cli.sh │ │ ├── home │ │ └── elfie │ │ │ └── .config │ │ │ └── fish │ │ │ └── config.fish │ │ ├── launch-tmux.sh │ │ └── restricted.tmux.conf ├── homer │ ├── Dockerfile │ ├── backgrounds │ │ └── elfhosted.jpg │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── favicon │ │ ├── favicon.png │ │ └── favicon.svg │ ├── metadata.json │ └── png │ │ ├── airdcpp.png │ │ ├── annatar.png │ │ ├── autobrr.png │ │ ├── calibrain.png │ │ ├── calibre.png │ │ ├── comet.png │ │ ├── debridmediamanager.png │ │ ├── filebot.png │ │ ├── kometa.png │ │ ├── logo.png │ │ ├── redisinsight.png │ │ ├── redisinsight.svg │ │ └── stremio.png ├── huntarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── imagemaid │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── imagemaid.sh │ ├── launch-tmux.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── jackett │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── jackettio │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── mediaflow-proxy.patch │ └── metadata.json ├── jellyfin │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── entrypoint.sh │ └── metadata.json ├── jellyseerr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── jellystat │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── jfa-go │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── kapowarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── kavita │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── knightcrawler │ ├── addon │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── branding │ │ ├── landingTemplate.js │ │ └── manifest.js │ ├── ci │ │ └── latest.sh │ ├── consumer │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── debrid-collector │ │ └── Dockerfile │ ├── metadata.json │ ├── metadata │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── migrator │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── producer │ │ ├── Dockerfile │ │ └── goss.yaml │ └── qbit-collector │ │ └── Dockerfile ├── kometa │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── kometa.sh │ ├── launch-tmux.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── komga │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── letterboxd-trakt-sync │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── letterboxd-trakt-sync.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── librespeed │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── lidarr │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.xml.tmpl │ ├── database-backup.sh │ ├── entrypoint.sh │ └── metadata.json ├── listsync │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── listsync.sh │ ├── metadata.json │ └── restricted.tmux.conf ├── mediaflow-proxy │ ├── Dockerfile │ ├── branding │ │ ├── elfhosted-branding.patch │ │ └── mediafusion-elfhosted-logo.png │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── mediafusion │ ├── Dockerfile │ ├── branding │ │ └── mediafusion-elfhosted-logo.png │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── miniflux │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── movie-roulette │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── my-fun-api │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── mylar3 │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── navidrome │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── nightscout │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── notifiarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── nuviostreams │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── metadata.json │ └── private │ │ ├── Dockerfile │ │ └── goss.yaml ├── nzbget │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── nzbhydra2 │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── ombi │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── openbooks │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── overseerr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── pairdrop │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── peertube │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── cli │ │ ├── Dockerfile │ │ ├── entrypoint.sh │ │ ├── goss.yaml │ │ └── launch-tmux.sh │ ├── metadata.json │ └── nonroot │ │ ├── Dockerfile │ │ └── goss.yaml ├── petio │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── phalanxdb-hyperswarm │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── plex-debrid │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── plex-debrid.sh │ ├── restricted.tmux.conf │ └── trakt.py ├── plex-token-generator │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── plex │ ├── Dockerfile │ ├── beta │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── plex-preferences.sh ├── plextraktsync │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── plextraktsync.sh │ └── restricted.tmux.conf ├── plexytrack │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ └── metadata.json ├── postiz │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── profilarr │ ├── Dockerfile │ ├── backend │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── frontend │ │ ├── Dockerfile │ │ ├── goss.yaml │ │ └── vite.config.js │ └── metadata.json ├── prowlarr │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.xml.tmpl │ ├── database-backup.sh │ ├── entrypoint.sh │ └── metadata.json ├── pulsarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── develop │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── metadata.json │ └── vite.config.js ├── puter │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── pyload-ng │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── radarr │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.xml.tmpl │ ├── database-backup.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── elf-import.sh │ ├── entrypoint.sh │ └── metadata.json ├── rclone │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ ├── root │ │ └── etc │ │ │ └── s6-overlay │ │ │ └── s6-rc.d │ │ │ ├── mounter │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ ├── rcloneui │ │ │ ├── dependencies.d │ │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ │ │ ├── user │ │ │ └── contents.d │ │ │ │ ├── mounter │ │ │ │ ├── rcloneui │ │ │ │ └── webdav-local │ │ │ └── webdav-local │ │ │ ├── dependencies.d │ │ │ └── base │ │ │ ├── run │ │ │ └── type │ └── rootfs │ │ ├── debrid-provider copy.sh │ │ ├── debrid-provider.sh │ │ ├── mounter.sh │ │ ├── rclonefm.sh │ │ ├── rcloneui.sh │ │ ├── webdav-local.sh │ │ └── webdav.sh ├── rdebrid-ui │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── rdtclient │ ├── Dockerfile │ ├── appsettings.json │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── readarr │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.xml.tmpl │ ├── database-backup.sh │ ├── entrypoint.sh │ └── metadata.json ├── requestrr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── resilio-sync │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── riven-frontend │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── frontend │ │ └── Dockerfile │ └── metadata.json ├── riven │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint-dev.sh │ ├── entrypoint.sh │ ├── launch-tmux-dev.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── restricted-dev.tmux.conf │ ├── restricted.tmux.conf │ ├── riven-dev.sh │ └── riven.sh ├── rpdb │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── rreading-glasses │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── rutorrent │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── conf.php │ ├── entrypoint.sh │ └── metadata.json ├── scannarr │ ├── Dockerfile │ ├── ci │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── seafile │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── seerrbridge │ ├── Dockerfile │ ├── bridgeboard │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── restricted.tmux.conf │ └── seerrbridge.sh ├── seonaut │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── shluflix │ ├── Dockerfile │ ├── branding │ │ ├── addon.js │ │ └── landingTemplate.js │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── shokoserver │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── simple-proxy │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── sonarr │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.xml.tmpl │ ├── database-backup.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── elf-import.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── scripts │ │ ├── Dockerfile │ │ ├── goss.yaml │ │ └── prepare-scripts.sh ├── storyteller │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-easynews-addon │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-jackett-cacher │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-jackett-community │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-jackett │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-rating-addon │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremio-server │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── stremio-web │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── stremthru │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── suggestarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── logging.yaml │ ├── metadata.json │ └── supervisord.conf ├── symlink-cleaner │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── syncthing │ ├── Dockerfile │ ├── builtin.sh │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── tautulli │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── thelounge │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── theme-park │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── threadfin │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── tinyproxy │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── tmdb-addon │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── elfhosted.patch │ ├── entrypoint.sh │ └── metadata.json ├── tooling │ ├── .bash_profile │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── restricted.tmux.conf │ └── scripts │ │ ├── backup-config.sh │ │ ├── backup-queue.sh │ │ ├── iptables-torrents-update.sh │ │ ├── run-public-torrent-client.sh │ │ ├── tripwire-deluge.sh │ │ └── tripwire-qbittorrent.sh ├── torrentio-producer │ ├── Dockerfile │ ├── ci │ │ └── latest.sh │ └── metadata.json ├── ubuntu │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── metadata.json │ └── scripts │ │ ├── elfscript.sh │ │ ├── greeting.sh │ │ ├── mounts.sh │ │ ├── sleep.sh │ │ ├── umask.sh │ │ ├── vpn.sh │ │ └── wait-for-urls.sh ├── unpackerr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── uptime-kuma │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── vaultwarden │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── wallabag │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── webhook-receiver │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── webstreamr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── wests-blackhole-script │ ├── Dockerfile │ ├── auth.sh │ ├── blackhole.sh │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ ├── blackhole.py │ │ └── goss.yaml │ ├── entrypoint.sh │ ├── launch-tmux.sh │ ├── metadata.json │ ├── polling-no-inotify.patch │ ├── request.sh │ ├── restricted.tmux.conf │ └── watchlist.sh ├── wireguard │ ├── Dockerfile │ ├── build │ │ └── sudoers_elfie │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── shim │ │ ├── iptables-backend.sh │ │ └── killswitch.sh ├── wizarr │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── zilean │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── zurg-rc │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── dev │ │ ├── Dockerfile │ │ └── goss.yaml │ ├── entrypoint.sh │ └── metadata.json └── zurg │ ├── Dockerfile │ ├── ci │ ├── goss.yaml │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── rc │ ├── Dockerfile │ └── goss.yaml ├── disabled ├── airdcpp │ ├── .airdcpp │ │ ├── DCPlusPlus.xml │ │ └── WebServer.xml │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── deluge │ ├── Dockerfile │ ├── Dockerfile.old │ ├── README.md │ ├── app │ │ ├── deluge.UpdateTracker.py │ │ ├── deluge.Userpass.py │ │ ├── deluge.addHost.py │ │ └── deluge.changeUserpass.py │ ├── build.sh │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.py │ ├── entrypoint.sh │ ├── metadata.json │ └── patches │ │ └── no-auth.diff ├── error-pages │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── error-pages.yml │ ├── metadata.json │ └── templates │ │ └── elfhosted.html ├── fake-torrent-server │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── gotify │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── joplin-server │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── lazylibrarian │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── qbittorrent │ ├── Dockerfile │ ├── README.md │ ├── build.sh │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── config.py │ ├── entrypoint.sh │ └── metadata.json ├── sabnzbd │ ├── Dockerfile │ ├── README.md │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ ├── metadata.json │ └── sabnzbd.ini ├── stremify │ ├── Dockerfile │ ├── branding │ │ └── elfhosted-branding.patch │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── traefik-forward-auth │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ └── metadata.json ├── warp │ ├── Dockerfile │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── entrypoint.sh │ └── metadata.json ├── youriptv │ ├── Dockerfile │ ├── addon.js │ ├── branding │ │ └── configure.html │ ├── ci │ │ ├── goss.yaml │ │ └── latest.sh │ ├── manifest.js │ ├── metadata.json │ └── nobranding │ │ ├── Dockerfile │ │ ├── addon.js │ │ └── goss.yaml └── youtubedl-material │ ├── Dockerfile │ ├── ci │ ├── goss.yaml │ └── latest.sh │ └── metadata.json └── metadata.rules.cue /.github/scripts/upstream.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | APP="${1}" 4 | CHANNEL="${2}" 5 | export TOKEN="${TOKEN}" 6 | export ZURG_GH_CREDS="${ZURG_GH_CREDS}" 7 | 8 | if test -f "./apps/${APP}/ci/latest.sh"; then 9 | bash ./apps/"${APP}"/ci/latest.sh "${CHANNEL}" 10 | fi 11 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.colorTheme": "Tomorrow Night Blue" 3 | } -------------------------------------------------------------------------------- /apps/aiolists/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/aiolists/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/aiostreams/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/aiostreams/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/alpine-s6-overlay/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/just-containers/s6-overlay/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/alpine-s6-overlay/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "alpine-s6-overlay", 3 | "base": true, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/alpine/scripts/elfscript.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Execute any scripts found in /elfscript 4 | for SCRIPT in $(ls /elfscript); do 5 | bash -c $SCRIPT 6 | done 7 | -------------------------------------------------------------------------------- /apps/alpine/scripts/greeting.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo " 4 | You are a brave elf delving into the depths of Linux. 5 | Ascend the command line dungeon, embrace the power it bestows. 6 | Prepare thyself, for peril and triumph await with each keystroke. 7 | " 8 | -------------------------------------------------------------------------------- /apps/alpine/scripts/umask.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | umask "${UMASK:-0002}" 4 | -------------------------------------------------------------------------------- /apps/apprise-api/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/caronc/apprise-api/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | 5 | -------------------------------------------------------------------------------- /apps/apprise-api/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "apprise-api", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/aria2/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | 3 | FROM ghcr.io/elfhosted/alpine:rolling@sha256:42c34434da805c1c907c64e360538654a84379cd5bbfba10a73870c50db44a87 4 | 5 | RUN apk add --no-cache aria2 6 | 7 | ENTRYPOINT ["/usr/bin/aria2c", "--enable-rpc", "--rpc-listen-all"] 8 | -------------------------------------------------------------------------------- /apps/aria2/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | aria2c: 5 | running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | # port: 9 | # # https://github.com/aelsabbahy/goss/issues/149 10 | # tcp6:6800: 11 | # listening: true 12 | -------------------------------------------------------------------------------- /apps/aria2/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/aria2/aria2/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/aria2/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "aria2", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/ariang/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | nginx: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8000: 10 | status: 200 11 | timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/ariang/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/mayswind/AriaNg/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/ariang/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | source "/scripts/vpn.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | nginx -g "daemon off;" -------------------------------------------------------------------------------- /apps/ariang/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "ariang", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/arrtools/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/sirk123au/ArrTools/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /apps/arrtools/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "arrtools", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/arrtools/root/home/elfie/.config/fish/conf.d/change-to-config.fish: -------------------------------------------------------------------------------- 1 | cd /config -------------------------------------------------------------------------------- /apps/arrtools/root/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s arrtools fish 4 | 5 | -------------------------------------------------------------------------------- /apps/audiobookbay-automated/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5078: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/audiobookbay-automated/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/JamesRy96/audiobookbay-automated/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /apps/audiobookbay-automated/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "audiobookbay-automated", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/audiobookrequest/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | fastapi: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8000: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/audiobookrequest/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/markbeep/AudioBookRequest/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/audiobookrequest/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "audiobookrequest", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/audiobookshelf/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/advplyr/audiobookshelf/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/audiobookshelf/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "audiobookshelf", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/autoscan/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Cloudbox/autoscan/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/autoscan/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # If there's no config.yml presented, then add a basic one so that goss can pass tests 4 | if [[ ! -f "/config/config.yml" ]]; then 5 | echo "port: 3030" > /config/config.yml 6 | fi 7 | 8 | exec \ 9 | /app/autoscan/autoscan 10 | -------------------------------------------------------------------------------- /apps/autoscan/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "autoscan", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/bazarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/morpheus65535/bazarr/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/bazarr/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /usr/bin/python3 \ 9 | /app/bazarr.py \ 10 | --no-update \ 11 | --config /config \ 12 | "$@" 13 | -------------------------------------------------------------------------------- /apps/bazarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "bazarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/bluesky-pds/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -s "https://api.github.com/repos/bluesky-social/atproto/releases" --header "Authorization: Bearer ${TOKEN}" | jq -r '[.[] | select((.name // "" | contains("pds")) or (.tag_name | contains("pds")))][0].tag_name') 3 | version="${version#*@atproto/pds@}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/bluesky-pds/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "bluesky-pds", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds-cli/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds-cli/dependencies.d/base -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds-cli/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv ash 2 | 3 | /pds-cli.sh -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds-cli/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds/dependencies.d/base -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv ash 2 | cd /app 3 | node --enable-source-maps index.js 4 | -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/pds/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/user/contents.d/pds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/user/contents.d/pds -------------------------------------------------------------------------------- /apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/user/contents.d/pds-cli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/bluesky-pds/root/etc/s6-overlay/s6-rc.d/user/contents.d/pds-cli -------------------------------------------------------------------------------- /apps/bluesky-pds/root/home/elfie/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | set -U fish_greeting "Welcome to the ElfHosted GoToSocial CLI! Run \"gotosocial\", and for help, see https://elfhosted.com/app/gotosocial/" 2 | fish_add_path /gotosocial -------------------------------------------------------------------------------- /apps/bluesky-pds/root/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s pds-cli fish 4 | -------------------------------------------------------------------------------- /apps/booklore/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | nginx: 5 | running: true 6 | java: 7 | running: true 8 | 9 | # http: 10 | # http://localhost:80: 11 | # status: 200 12 | # http://localhost:8080: 13 | # status: 200 14 | -------------------------------------------------------------------------------- /apps/booklore/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/adityachandelgit/BookLore/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/booklore/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "booklore", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /apps/byparr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | uv: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8191/health: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/byparr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/ThePhaseless/Byparr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/byparr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "byparr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/calibre-web-automated/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8083: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/calibre-web-automated/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/crocodilestick/Calibre-Web-Automated/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/calibre-web-automated/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | # copy app to tmp location to avoid readonlyrootfs 7 | cp /app/calibre-web /tmp -rfp 8 | 9 | #shellcheck disable=SC2086 10 | exec \ 11 | /usr/bin/python3 \ 12 | /tmp/calibre-web/cps.py \ 13 | -p /config/app.db \ 14 | -g /config/gd.db -------------------------------------------------------------------------------- /apps/calibre-web-automated/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "calibre-web-automated", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/cinesync/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/sureshfizzy/CineSync/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*CineSync-}" 4 | printf "%s" "${version}" 5 | 6 | -------------------------------------------------------------------------------- /apps/cinesync/cinesync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 MediaHub/main.py --auto-select 4 | 5 | echo "Cinesync has unexpectedly exited :( Press any key to restart, or wait 5 min... (incase you need to capture debug output)" 6 | read -s -n 1 -t 300 -------------------------------------------------------------------------------- /apps/cinesync/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s cinesync /cinesync.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/cli_debrid/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5000: 10 | status: 200 11 | timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/cli_debrid/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5000: 10 | status: 200 11 | timeout: 5000 12 | http://localhost:5001: 13 | status: 200 14 | timeout: 5000 15 | -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/primary/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/primary/dependencies.d/base -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/primary/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | cd /app 3 | python /app/main.py -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/primary/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/secondary/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/secondary/dependencies.d/base -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/secondary/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | cd /app/cli_battery 3 | python /app/cli_battery/main.py -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/secondary/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/user/contents.d/primary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/user/contents.d/primary -------------------------------------------------------------------------------- /apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/user/contents.d/secondary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/cli_debrid/root/etc/s6-overlay/s6-rc.d/user/contents.d/secondary -------------------------------------------------------------------------------- /apps/cloudflarebypassforscraping/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/sarperavci/CloudflareBypassForScraping/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/cloudflarebypassforscraping/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "cloudflarebypassforscraping", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/codeserver/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | # process: 4 | # code-server: 5 | # running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8080: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/codeserver/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/coder/code-server/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/codeserver/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "codeserver", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/comet/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/g0ldyy/comet/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/comet/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | poetry run python3 main.py -------------------------------------------------------------------------------- /apps/comet/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "comet", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/concourse-git-semver-tag-resource/assets/askpass.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Private keys with passphrases are not supported." >&2 3 | exit 1 4 | -------------------------------------------------------------------------------- /apps/concourse-git-semver-tag-resource/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | printf "%s" "latest" 3 | -------------------------------------------------------------------------------- /apps/concourse-git-semver-tag-resource/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "concourse-git-semver-tag-resource", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries 2 | build/* 3 | 4 | # Taskfile 5 | .task 6 | 7 | # Task installation in Travis 8 | bin/task 9 | 10 | # Editor 11 | .idea/ 12 | rateLimit.json 13 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | matrix: 4 | include: 5 | - os: osx 6 | go: 1.16.x 7 | - os: linux 8 | go: 1.16.x 9 | notifications: 10 | email: false 11 | script: 12 | - curl -sL https://taskfile.dev/install.sh | sh 13 | - ./bin/task ci 14 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Default. Unless we have a more specific match. 2 | * @telia-oss/golang 3 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/README.md: -------------------------------------------------------------------------------- 1 | ## Github PR resource 2 | 3 | Just my auto-updated build of https://github.com/opendoor-labs/github-pr-resource 4 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | printf "%s" "latest" 3 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/e2e-opendoor/request.README: -------------------------------------------------------------------------------- 1 | note that the ghs_XXXX tokens expire every now ... if you see this in the git repo 2 | its not a security issue 3 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/e2e-opendoor/update_pipeline.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | fly -t od set-pipeline \ 5 | --pipeline "sample-opendoor-github-pr-resource" \ 6 | --config "pipeline.yaml" -n 7 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/e2e-opendoor/value-od-git-resource-debug.json: -------------------------------------------------------------------------------- 1 | { 2 | "value":true, 3 | "comment" : "Use a @value-od-git-resource-debug.json where to save the value as a bool", 4 | "comment2": "To test the output of vault : vault kv get -format=json concourse/shared/od-github-pr-resource-debug", 5 | "example" : "vault kv put -format=json concourse/shared/od-git-resource-debug @value-od-git-resource-debug.json" 6 | } 7 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/e2e-opendoor/value-od-github-pr-resource-debug.json: -------------------------------------------------------------------------------- 1 | { 2 | "value":true, 3 | "comment" : "Use a @value-od-github-pr-resource-debug.json where to save the value as a bool", 4 | "example" : "vault kv put -format=json concourse/shared/od-github-pr-resource-debug @value-od-github-pr-resource-debug.json" 5 | } 6 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "concourse-github-pr-resource", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/scripts/askpass.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exec echo "$X_OAUTH_BASIC_TOKEN" 3 | -------------------------------------------------------------------------------- /apps/concourse-github-pr-resource/tools/tools.go: -------------------------------------------------------------------------------- 1 | //go:build tools 2 | // +build tools 3 | 4 | package tools 5 | 6 | import ( 7 | _ "github.com/maxbrunsfeld/counterfeiter/v6" 8 | ) 9 | 10 | // This file imports packages that are used when running go generate, or used 11 | // during the development process but not otherwise depended on by built code. 12 | // Source: https://github.com/maxbrunsfeld/counterfeiter 13 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/.dockerignore: -------------------------------------------------------------------------------- 1 | ** 2 | !/check 3 | !/in 4 | !/out 5 | !/test 6 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | printf "%s" "latest" 3 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "concourse-slack-notification-resource", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/.env: -------------------------------------------------------------------------------- 1 | VERSION=1.0.1 2 | QUALITY_GATE=B (ERROR) 3 | WITH_PIPE= 4 | with_GLOB=./path/to/*.jar -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/attachment-sample.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "color": "success", 4 | "text": "Build $BUILD_NAME passed!" 5 | } 6 | ] -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/attachments_no_text.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "username": "concourse", 4 | "always_notify": "true", 5 | "debug": "true", 6 | "attachments": [ 7 | { 8 | "color": "danger", 9 | "text": "Build $BUILD_NAME failed!" 10 | } 11 | ] 12 | }, 13 | "source": { 14 | "url": "https://some.url" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/metadata.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text": "Inline static text", 4 | "username": "concourse", 5 | "channel": "#some_channel", 6 | "debug": "true", 7 | "metadata": "true" 8 | }, 9 | "source": { 10 | "url": "https://hooks.slack.com/services/TH68FHGIS/DO3A4DHES/WOHn386NE4t64Hnae3T684RK" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/multiple_channels.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text": "Inline static text", 4 | "username": "concourse", 5 | "debug": "true", 6 | "channel": "#some_channel #another_channel" 7 | }, 8 | "source": { 9 | "url": "https://some.url" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/no_attachments_no_text_and_attachments_file.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "username": "concourse", 4 | "always_notify": "true", 5 | "debug": "true", 6 | "attachments_file": "attachment-sample.txt" 7 | }, 8 | "source": { 9 | "url": "https://some.url" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/no_attachments_with_text_and_attachments_file.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text": "Inline static text", 4 | "username": "concourse", 5 | "always_notify": "true", 6 | "debug": "true", 7 | "attachments_file": "attachment-sample.txt" 8 | }, 9 | "source": { 10 | "url": "https://some.url" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/sample-empty.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/concourse-slack-notification-resource/test/sample-empty.txt -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/sample.txt: -------------------------------------------------------------------------------- 1 | This text came from sample.txt. It could have been generated by a previous Concourse task. 2 | 3 | Multiple lines are allowed. 4 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/text.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text": "Inline static `text`", 4 | "username": "concourse", 5 | "debug": "true" 6 | }, 7 | "source": { 8 | "url": "https://some.url" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/text_file.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text_file": "sample.txt", 4 | "username": "concourse", 5 | "debug": "true" 6 | }, 7 | "source": { 8 | "url": "https://some.url" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/text_file_empty.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text_file": "sample-empty.txt", 4 | "username": "concourse", 5 | "always_notify": "true", 6 | "debug": "true" 7 | }, 8 | "source": { 9 | "url": "https://some.url" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/concourse-slack-notification-resource/test/text_file_empty_suppress.out: -------------------------------------------------------------------------------- 1 | { 2 | "params": { 3 | "text_file": "sample-empty.txt", 4 | "username": "concourse", 5 | "debug": "true" 6 | }, 7 | "source": { 8 | "url": "https://some.url" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/csi-rclone/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/ceresimaging/csi-rclone/commits/master" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/csi-rclone/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "csi-rclone", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/cwa-downloader/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/calibrain/calibre-web-automated-book-downloader/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/cwa-downloader/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec -c 'cd backend && source /venv/bin/activate && exec python /iceberg/backend/main.py & ORIGIN=$ORIGIN node /iceberg/frontend/build' -------------------------------------------------------------------------------- /apps/cwa-downloader/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "cwa-downloader", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/dante/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Manually updated from https://www.inet.no/dante/ 3 | printf "%s" "v1.4.3" -------------------------------------------------------------------------------- /apps/dante/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "dante", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/davdebrid/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/arvida42/davdebrid/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | 6 | -------------------------------------------------------------------------------- /apps/davdebrid/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "davdebrid", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/davio/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/arvida42/davio/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/davio/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "davio", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/debrid-media-manager/Dockerfile: -------------------------------------------------------------------------------- 1 | # Get the elfhosted code 2 | ARG VERSION 3 | FROM debridmediamanager/debrid-media-manager:${VERSION} 4 | 5 | # Switch to postgres 6 | RUN sed -i -e 's/mysql/postgres/' prisma/schema.prisma && \ 7 | sed -i -e 's/mysql/postgres/' node_modules/.prisma/client/schema.prisma && \ 8 | sed -i -e 's/mysql/postgres/' node_modules/.prisma/client/index.js 9 | 10 | # Apply ElfHosted branding (soon) -------------------------------------------------------------------------------- /apps/debrid-media-manager/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -s -S "https://registry.hub.docker.com/v2/repositories/debridmediamanager/debrid-media-manager/tags/" | jq -r '."results"[]["name"]' | grep -v latest | head -1) 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/decluttarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/decluttarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/ManiMatter/decluttarr/commits/dev" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/decluttarr/decluttarr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 /main.py 4 | read -n 1 -s -r -p "Press any key to continue" 5 | -------------------------------------------------------------------------------- /apps/decluttarr/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s decluttarr /decluttarr.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/decluttarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "decluttarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/decypharr/beta/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | decypharr: 5 | running: true 6 | 7 | http: 8 | http://localhost:8282: 9 | status: 200 -------------------------------------------------------------------------------- /apps/decypharr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | decypharr: 5 | running: true 6 | 7 | http: 8 | http://localhost:8282: 9 | status: 200 -------------------------------------------------------------------------------- /apps/discussio/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | deno: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7000: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/discussio/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/ReemX/discussio/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/discussio/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "discussio", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/dispatcharr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | gunicorn: 5 | running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:9191: 10 | status: 200 11 | timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/dispatcharr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Dispatcharr/Dispatcharr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/dispatcharr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "dispatcharr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/doplarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/doplarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/kiranshila/Doplarr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/doplarr/doplarr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | echo "Starting Doplarr... it's a java app 🤮, this may take a little while, it's normal to see no output for up to a minute..." 4 | 5 | # run the script 6 | cd /app 7 | java -jar doplarr.jar 8 | echo "doplarr has unexpectedly exited :( Press any key to restart, or wait 5 min... (incase you need to capture debug output)" 9 | read -s -n 1 -t 300 -------------------------------------------------------------------------------- /apps/doplarr/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s doplarr /doplarr.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/doplarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "doplarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/emby/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/MediaBrowser/Emby.Releases/releases --header "Authorization: Bearer ${TOKEN}" | jq -r '.[] | select(.prerelease == true) | .tag_name' | head -n 1) 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/emby/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "emby", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/fakearr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5001/api?t=search: 10 | status: 200 -------------------------------------------------------------------------------- /apps/fakearr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/fakearr/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /apps/fakearr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "fakearr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/ffprobe-shim/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/ffprobe-shim/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /apps/ffprobe-shim/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "ffprobe-shim", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/filebot-node/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM rednoah/filebot:node as upstream 3 | 4 | RUN \ 5 | adduser elfie \ 6 | --uid 568 \ 7 | --group \ 8 | --system \ 9 | --disabled-password \ 10 | --home /data/node 11 | 12 | ENV PUID=568 PGID=568 13 | 14 | ENTRYPOINT ["/opt/filebot-node/start"] 15 | USER 568 16 | -------------------------------------------------------------------------------- /apps/filebot-node/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/filebot/filebot-node/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/filebot-node/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "filebot-node", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/filebrowser/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # version=$(curl -sX GET https://api.github.com/repos/filebrowser/filebrowser/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version="${version#*v}" 4 | # version="${version#*release-}" 5 | # printf "%s" "${version}" 6 | printf "2.23.0" -------------------------------------------------------------------------------- /apps/filebrowser/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "filebrowser", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/elfterm/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/filebrowser/root/etc/s6-overlay/s6-rc.d/elfterm/dependencies.d/base -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/elfterm/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | 3 | ln -s /storage/config/plextraktsync /home/elfie/.config 4 | 5 | # Launch elfterm 6 | /elfterm.sh -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/elfterm/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/filebrowser/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/filebrowser/root/etc/s6-overlay/s6-rc.d/filebrowser/dependencies.d/base -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/filebrowser/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | cd /tmp 3 | /filebrowser 4 | -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/filebrowser/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/user/contents.d/elfterm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/filebrowser/root/etc/s6-overlay/s6-rc.d/user/contents.d/elfterm -------------------------------------------------------------------------------- /apps/filebrowser/root/etc/s6-overlay/s6-rc.d/user/contents.d/filebrowser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/filebrowser/root/etc/s6-overlay/s6-rc.d/user/contents.d/filebrowser -------------------------------------------------------------------------------- /apps/filebrowser/root/home/elfie/.config/fish/conf.d/change-to-storage.fish: -------------------------------------------------------------------------------- 1 | cd /storage -------------------------------------------------------------------------------- /apps/filebrowser/root/home/elfie/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | set -U fish_greeting "Welcome to the ElfTerm! For help, see https://elfhosted.com/how-to/use-elfterm/" -------------------------------------------------------------------------------- /apps/filebrowser/root/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s elfterm fish 4 | -------------------------------------------------------------------------------- /apps/flaresolverr/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM ghcr.io/flaresolverr/flaresolverr:v${VERSION} as upstream 3 | COPY ./apps/alpine/scripts /scripts 4 | 5 | ENTRYPOINT ["/usr/bin/dumb-init", "--"] 6 | CMD ["bash", "-c", "source /scripts/vpn.sh && exec /usr/local/bin/python -u /app/flaresolverr.py"] -------------------------------------------------------------------------------- /apps/flaresolverr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # process: 4 | # gatus: 5 | # running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | # port: 9 | # # https://github.com/aelsabbahy/goss/issues/149 10 | # tcp6:8080: 11 | # listening: true 12 | 13 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 14 | http: 15 | http://localhost:8191: 16 | status: 200 17 | -------------------------------------------------------------------------------- /apps/flaresolverr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "flaresolverr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/flixio-api/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/iPromKnight/flixio-api/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/flixio-api/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "flixio-api", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/formulio/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/TheRaceDirector/formuliodev/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/formulio/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "formulio", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/gatus/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM twinproduction/gatus:v${VERSION} as upstream 3 | 4 | FROM ghcr.io/elfhosted/alpine:rolling@sha256:42c34434da805c1c907c64e360538654a84379cd5bbfba10a73870c50db44a87 5 | 6 | COPY --from=upstream /gatus / 7 | COPY --from=upstream /config/config.yaml ./config/config.yaml 8 | 9 | ENV PORT=8080 10 | EXPOSE ${PORT} 11 | 12 | ENTRYPOINT ["/gatus"] 13 | -------------------------------------------------------------------------------- /apps/gatus/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | process: 4 | gatus: 5 | running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | # port: 9 | # # https://github.com/aelsabbahy/goss/issues/149 10 | # tcp6:8080: 11 | # listening: true 12 | 13 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 14 | # http: 15 | # http://localhost:8080: 16 | # status: 200 17 | -------------------------------------------------------------------------------- /apps/gatus/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/TwiN/gatus/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/gatus/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "gatus", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/ghost/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/ghost/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # version=$(curl -sX GET https://api.github.com/repos/kiranshila/Doplarr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version="${version#*release-}" 4 | # printf "%s" "${version}" 5 | printf "5.90.2" -------------------------------------------------------------------------------- /apps/ghost/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "ghost", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/gluetun/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM qmcgaw/gluetun:v${VERSION} as upstream 3 | 4 | RUN apk --no-cache add bind-tools curl 5 | 6 | COPY apps/gluetun/entrypoint.sh / 7 | ENTRYPOINT ["/entrypoint.sh"] -------------------------------------------------------------------------------- /apps/gluetun/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/qdm12/gluetun/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/gluetun/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "gluetun", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/gotosocial/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/superseriousbusiness/gotosocial/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/gotosocial/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "gotosocial", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial-cli/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial-cli/dependencies.d/base -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial-cli/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv ash 2 | 3 | # Launch elfterm 4 | /gotosocial-cli.sh -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial-cli/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial/dependencies.d/base -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv ash 2 | cd /gotosocial 3 | ./gotosocial server start 4 | -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/gotosocial/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/user/contents.d/gotosocial: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/gotosocial/root/etc/s6-overlay/s6-rc.d/user/contents.d/gotosocial -------------------------------------------------------------------------------- /apps/gotosocial/root/etc/s6-overlay/s6-rc.d/user/contents.d/gotosocial-cli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/gotosocial/root/etc/s6-overlay/s6-rc.d/user/contents.d/gotosocial-cli -------------------------------------------------------------------------------- /apps/gotosocial/root/home/elfie/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | set -U fish_greeting "Welcome to the ElfHosted GoToSocial CLI! Run \"gotosocial\", and for help, see https://elfhosted.com/app/gotosocial/" 2 | fish_add_path /gotosocial -------------------------------------------------------------------------------- /apps/gotosocial/root/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s gotosocial-cli fish 4 | -------------------------------------------------------------------------------- /apps/homer/backgrounds/elfhosted.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/backgrounds/elfhosted.jpg -------------------------------------------------------------------------------- /apps/homer/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/bastienwirtz/homer/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/homer/favicon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/favicon/favicon.png -------------------------------------------------------------------------------- /apps/homer/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "homer", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/homer/png/airdcpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/airdcpp.png -------------------------------------------------------------------------------- /apps/homer/png/annatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/annatar.png -------------------------------------------------------------------------------- /apps/homer/png/autobrr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/autobrr.png -------------------------------------------------------------------------------- /apps/homer/png/calibrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/calibrain.png -------------------------------------------------------------------------------- /apps/homer/png/calibre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/calibre.png -------------------------------------------------------------------------------- /apps/homer/png/comet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/comet.png -------------------------------------------------------------------------------- /apps/homer/png/debridmediamanager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/debridmediamanager.png -------------------------------------------------------------------------------- /apps/homer/png/filebot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/filebot.png -------------------------------------------------------------------------------- /apps/homer/png/kometa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/kometa.png -------------------------------------------------------------------------------- /apps/homer/png/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/logo.png -------------------------------------------------------------------------------- /apps/homer/png/redisinsight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/redisinsight.png -------------------------------------------------------------------------------- /apps/homer/png/stremio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/homer/png/stremio.png -------------------------------------------------------------------------------- /apps/huntarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/plexguide/Huntarr.io/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/huntarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "huntarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/imagemaid/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/imagemaid/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Kometa-Team/ImageMaid/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/imagemaid/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s imagemaid /imagemaid.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/imagemaid/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "imagemaid", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/jackett/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Jackett/Jackett/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/jackett/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC2086 4 | exec \ 5 | /usr/local/bin/thelounge \ 6 | start \ 7 | "$@" 8 | -------------------------------------------------------------------------------- /apps/jackett/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "jackett", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/jackettio/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | 8 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 9 | http: 10 | http://localhost:4000: 11 | status: 200 12 | -------------------------------------------------------------------------------- /apps/jackettio/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Telkaoss/jackettio/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/jackettio/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec -c 'cd backend && source /venv/bin/activate && exec python /iceberg/backend/main.py & ORIGIN=$ORIGIN node /iceberg/frontend/build' -------------------------------------------------------------------------------- /apps/jackettio/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "jackettio", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/jellyfin/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/jellyfin/jellyfin/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/jellyseerr/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM fallenbagel/jellyseerr:${VERSION} as upstream 3 | ENV CONFIG_DIRECTORY="/config" -------------------------------------------------------------------------------- /apps/jellyseerr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Fallenbagel/jellyseerr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/jellyseerr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "jellyseerr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/jellystat/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/CyferShepard/Jellystat/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/jellystat/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "jellystat", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/jfa-go/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM hrfee/jfa-go as upstream 3 | FROM golang:latest 4 | 5 | COPY --from=upstream /opt/jfa-go /opt/jfa-go 6 | 7 | EXPOSE 8056 8 | EXPOSE 8057 9 | 10 | RUN addgroup elfie --gid 568 && \ 11 | adduser --uid 568 --gid 568 --home /config elfie 12 | 13 | USER 568 14 | 15 | CMD [ "/opt/jfa-go/jfa-go", "-data", "/config" ] 16 | -------------------------------------------------------------------------------- /apps/jfa-go/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/hrfee/jfa-go/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/jfa-go/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "jfa-go", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/kapowarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | # process: 4 | # python: 5 | # running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5656: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/kapowarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/Casvt/Kapowarr/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*V}" 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/kapowarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "kapowarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/kavita/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | Kavita: 5 | running: true 6 | 7 | 8 | # port: 9 | # tcp:5000: 10 | # listening: true 11 | 12 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 13 | # http: 14 | # http://localhost:5000: 15 | # status: 200 16 | # timeout: 30000 17 | -------------------------------------------------------------------------------- /apps/kavita/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -s "https://hub.docker.com/v2/repositories/jvmilazz0/kavita/tags?page_size=100" | 3 | jq -r '.results[] | select(.name | test("^[0-9]+\\.[0-9]+\\.[0-9]+$")) | .name' | 4 | head -n 1) 5 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/kavita/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "kavita", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/knightcrawler/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/knightcrawler-stremio/knightcrawler/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/kometa/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/kometa/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Kometa-Team/Kometa/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/kometa/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s kometa /kometa.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/kometa/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "kometa", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/komga/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | java: 5 | running: true 6 | 7 | # port: 8 | # tcp:25600: 9 | # listening: true 10 | 11 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 12 | http: 13 | http://localhost:25600: 14 | status: 200 15 | timeout: 5000 16 | -------------------------------------------------------------------------------- /apps/komga/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/gotson/komga/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/komga/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "komga", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/letterboxd-trakt-sync/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/f0e/letterboxd-trakt-sync/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/letterboxd-trakt-sync/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s letterboxd-trakt-sync /letterboxd-trakt-sync.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/letterboxd-trakt-sync/letterboxd-trakt-sync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python -u -m letterboxd_trakt.main 4 | 5 | echo "Letterboxd Trakt Sync has unexpectedly exited :( Press any key to restart, or wait 5 min... (incase you need to capture debug output)" 6 | read -s -n 1 -t 300 -------------------------------------------------------------------------------- /apps/letterboxd-trakt-sync/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "letterboxd-trakt-sync", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/librespeed/Dockerfile: -------------------------------------------------------------------------------- 1 | # Get the upstream code 2 | FROM ghcr.io/librespeed/speedtest:latest 3 | 4 | # Install psql extension 5 | # RUN apt install \ 6 | # php-gd \ 7 | # php83-session 8 | -------------------------------------------------------------------------------- /apps/librespeed/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | # process: 4 | # httpd: 5 | # running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:80: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/librespeed/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/librespeed/speedtest/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/librespeed/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "librespeed", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/lidarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | channel=$1 3 | version=$(curl -s GET "https://lidarr.servarr.com/v1/update/${channel}/changes?os=linux&runtime=netcore" | jq --raw-output '.[0].version') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/listsync/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/listsync/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s listsync /listsync.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/listsync/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "listsync", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/mediaflow-proxy/branding/mediafusion-elfhosted-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/mediaflow-proxy/branding/mediafusion-elfhosted-logo.png -------------------------------------------------------------------------------- /apps/mediaflow-proxy/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | gunicorn: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | port: 9 | # https://github.com/aelsabbahy/goss/issues/149 10 | tcp:8888: 11 | listening: true 12 | -------------------------------------------------------------------------------- /apps/mediaflow-proxy/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/mhdzumair/mediaflow-proxy/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/mediaflow-proxy/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "mediaflow-proxy", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/mediafusion/branding/mediafusion-elfhosted-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/mediafusion/branding/mediafusion-elfhosted-logo.png -------------------------------------------------------------------------------- /apps/miniflux/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM ghcr.io/miniflux/miniflux:${VERSION} as upstream 3 | FROM ghcr.io/elfhosted/alpine:rolling@sha256:42c34434da805c1c907c64e360538654a84379cd5bbfba10a73870c50db44a87 4 | COPY --from=upstream /usr/bin/miniflux /usr/bin/miniflux 5 | 6 | ENV LISTEN_ADDR 0.0.0.0:8080 7 | CMD ["/usr/bin/miniflux"] 8 | -------------------------------------------------------------------------------- /apps/miniflux/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/miniflux/v2/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/miniflux/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "miniflux", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /apps/movie-roulette/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | gunicorn: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:4000: 10 | status: 200 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/movie-roulette/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET https://api.github.com/repos/sahara101/Movie-Roulette/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/movie-roulette/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "movie-roulette", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/my-fun-api/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/my-fun-api/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/my-fun-api/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec -c 'cd backend && source /venv/bin/activate && exec python /iceberg/backend/main.py & ORIGIN=$ORIGIN node /iceberg/frontend/build' -------------------------------------------------------------------------------- /apps/my-fun-api/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "my-fun-api", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/mylar3/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/mylar3/mylar3/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/mylar3/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /usr/bin/python3 \ 9 | /app/Mylar.py \ 10 | --nolaunch \ 11 | --port ${MYLAR3__PORT} \ 12 | --datadir /config \ 13 | "$@" 14 | -------------------------------------------------------------------------------- /apps/mylar3/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "mylar3", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/navidrome/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/navidrome/navidrome/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/navidrome/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /app/navidrome \ 9 | --datafolder /config \ 10 | "$@" 11 | -------------------------------------------------------------------------------- /apps/navidrome/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "navidrome", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/nightscout/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/nightscout/cgm-remote-monitor/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | 5 | -------------------------------------------------------------------------------- /apps/nightscout/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "nightscout", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/notifiarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | notifiarr: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5454: 10 | status: 200 11 | timeout: 5000 12 | 13 | port: 14 | tcp:5454: 15 | listening: true -------------------------------------------------------------------------------- /apps/notifiarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Notifiarr/notifiarr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/notifiarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "notifiarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/nuviostreams/Dockerfile: -------------------------------------------------------------------------------- 1 | # Placeholder until we have releases -------------------------------------------------------------------------------- /apps/nuviostreams/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7777: 10 | status: 200 -------------------------------------------------------------------------------- /apps/nuviostreams/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7777: 10 | status: 200 -------------------------------------------------------------------------------- /apps/nuviostreams/private/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7777: 10 | status: 200 -------------------------------------------------------------------------------- /apps/nzbget/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/nzbgetcom/nzbget/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/nzbget/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "nzbget", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/nzbhydra2/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5076: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/nzbhydra2/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/theotherp/nzbhydra2/releases" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.[0].tag_name') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/nzbhydra2/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /usr/bin/python3 \ 9 | /app/nzbhydra2/nzbhydra2wrapperPy3.py \ 10 | --nobrowser \ 11 | --datafolder /config \ 12 | "$@" 13 | -------------------------------------------------------------------------------- /apps/nzbhydra2/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "nzbhydra2", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/ombi/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/Ombi-app/Ombi/releases/latest" --header "Authorization: Bearer ${TOKEN}"| jq --raw-output '.tag_name') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/ombi/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /app/Ombi \ 9 | --host http://0.0.0.0:5000 \ 10 | --storage /config \ 11 | "$@" 12 | -------------------------------------------------------------------------------- /apps/ombi/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "ombi", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/openbooks/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/evan-buss/openbooks/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/openbooks/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "openbooks", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/overseerr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/sct/overseerr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/overseerr/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC2086 4 | cd /app/overseerr || exit 5 | 6 | export CONFIG_DIRECTORY="/config" 7 | 8 | exec \ 9 | /usr/bin/yarn start -------------------------------------------------------------------------------- /apps/overseerr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "overseerr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/pairdrop/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/pairdrop/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/schlagmichdoch/PairDrop/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/pairdrop/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "pairdrop", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/peertube/cli/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux new-session -A -s peertube-cli /bin/fish 4 | 5 | -------------------------------------------------------------------------------- /apps/petio/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7777: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/petio/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/petio-team/petio/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/petio/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "petio", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/phalanxdb-hyperswarm/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8888: 10 | status: 404 11 | -------------------------------------------------------------------------------- /apps/phalanxdb-hyperswarm/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/godver3/phalanx_db_hyperswarm/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/phalanxdb-hyperswarm/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "phalanxdb-hyperswarm", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/plex-debrid/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/plex_debrid/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 4 | printf "%s" "dev-${version}" 5 | -------------------------------------------------------------------------------- /apps/plex-debrid/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | tmux -f /usr/src/app/restricted.tmux.conf new-session -A -s plex_debrid /plex-debrid.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/plex-debrid/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "plex-debrid", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/plex-debrid/plex-debrid.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | cd /config/ 4 | export TERM=tmux 5 | python /usr/src/app/main.py --c 6 | 7 | -------------------------------------------------------------------------------- /apps/plex-token-generator/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest as cloner 2 | 3 | ARG CHANNEL 4 | ARG VERSION 5 | 6 | RUN apk update && apk upgrade && \ 7 | apk add --no-cache git 8 | 9 | RUN git clone https://github.com/elfhosted/plex-token-generator.git /source 10 | 11 | 12 | FROM nginxinc/nginx-unprivileged:alpine 13 | 14 | COPY --from=cloner /source/. /usr/share/nginx/html/ 15 | -------------------------------------------------------------------------------- /apps/plex-token-generator/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/plex-token-generator/commits/master" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/plex-token-generator/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | poetry run python3 main.py -------------------------------------------------------------------------------- /apps/plex-token-generator/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "plex-token-generator", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/plex/beta/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 3 | port: 4 | # https://github.com/aelsabbahy/goss/issues/149 5 | tcp6:32400: 6 | listening: true 7 | -------------------------------------------------------------------------------- /apps/plex/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 3 | port: 4 | # https://github.com/aelsabbahy/goss/issues/149 5 | tcp6:32400: 6 | listening: true 7 | -------------------------------------------------------------------------------- /apps/plextraktsync/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Taxel/PlexTraktSync/tags --header "Authorization: Bearer ${TOKEN}" | grep '"name"' | head -n 1 | sed 's/.*: "\(.*\)",/\1/') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/plextraktsync/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s plextraktsync /plextraktsync.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/plextraktsync/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "plextraktsync", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/plextraktsync/plextraktsync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if grep -q plex:32400 /home/elfie/.config/PlexTraktSync/servers.yml; then 4 | /home/elfie/.local/bin/plextraktsync watch 5 | else 6 | echo "PlexTraktSync not setup for http://plex:32400, please use ElfTerm to configure it first" 7 | fi 8 | read -n 1 -s -r -p "Press any key to continue" -------------------------------------------------------------------------------- /apps/plexytrack/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5030: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/plexytrack/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5030: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/postiz/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/gitroomhq/postiz-app/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*CineSync-}" 4 | printf "%s" "${version}" 5 | 6 | -------------------------------------------------------------------------------- /apps/postiz/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "postiz", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/profilarr/backend/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5000: 10 | status: 404 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/profilarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | gunicorn: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:6868: 10 | status: 200 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/profilarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET https://api.github.com/repos/Dictionarry-Hub/profilarr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/profilarr/frontend/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | npm: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/prowlarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | channel=$1 3 | version=$(curl -s "https://prowlarr.servarr.com/v1/update/${channel}/changes?os=linux&runtime=netcore" | jq --raw-output '.[0].version') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/pulsarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3003: 10 | status: 200 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/pulsarr/develop/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3003: 10 | status: 200 11 | timeout: 5000 12 | 13 | -------------------------------------------------------------------------------- /apps/puter/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:4100: 10 | status: 200 -------------------------------------------------------------------------------- /apps/puter/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/heyputer/puter/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | 5 | -------------------------------------------------------------------------------- /apps/puter/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "puter", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/pyload-ng/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -Ls https://pypi.org/pypi/pyload-ng/json | jq -r .info.version) 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/pyload-ng/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | pyload \ 9 | --userdir /config \ 10 | "$@" 11 | -------------------------------------------------------------------------------- /apps/pyload-ng/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "pyload-ng", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rclone/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "rclone", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/mounter/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/mounter/dependencies.d/base -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/mounter/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | /mounter.sh 3 | -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/mounter/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/rcloneui/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/rcloneui/dependencies.d/base -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/rcloneui/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | /rcloneui.sh -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/rcloneui/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/mounter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/mounter -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/rcloneui: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/rcloneui -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/webdav-local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/user/contents.d/webdav-local -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/webdav-local/dependencies.d/base: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elfhosted/containers/7246fc6dfc16ea1d47bad2cac08d657b76c87daf/apps/rclone/root/etc/s6-overlay/s6-rc.d/webdav-local/dependencies.d/base -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/webdav-local/run: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | /webdav-local.sh -------------------------------------------------------------------------------- /apps/rclone/root/etc/s6-overlay/s6-rc.d/webdav-local/type: -------------------------------------------------------------------------------- 1 | longrun -------------------------------------------------------------------------------- /apps/rclone/rootfs/rclonefm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | /usr/bin/rclone rcd \ 4 | --config=/config/rclone.conf \ 5 | --rc-web-gui \ 6 | --rc-addr=0.0.0.0:5573 \ 7 | --rc-web-gui-no-open-browser \ 8 | --rc-no-auth \ 9 | --transfers=1 \ 10 | --links \ 11 | --multi-thread-streams=1 \ 12 | /var/lib/rclonefm -------------------------------------------------------------------------------- /apps/rclone/rootfs/rcloneui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | /usr/bin/rclone rcd \ 4 | --config=/config/rclone.conf \ 5 | --rc-web-gui \ 6 | --rc-addr=0.0.0.0:5572 \ 7 | --rc-web-gui-no-open-browser \ 8 | --rc-no-auth \ 9 | --transfers=1 \ 10 | --links \ 11 | --multi-thread-streams=1 \ 12 | /var/lib/rcloneui -------------------------------------------------------------------------------- /apps/rclone/rootfs/webdav-local.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | /usr/bin/rclone serve webdav \ 4 | --addr :5575 \ 5 | --max-header-bytes=8192 \ 6 | --vfs-read-chunk-size=10M \ 7 | --vfs-read-chunk-size-limit=10M \ 8 | --stats 60s \ 9 | --copy-links \ 10 | -v \ 11 | /mount/remote 12 | -------------------------------------------------------------------------------- /apps/rdebrid-ui/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | port: 4 | # https://github.com/aelsabbahy/goss/issues/149 5 | tcp6:8080: 6 | listening: true -------------------------------------------------------------------------------- /apps/rdebrid-ui/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/tgdrive/rdebrid-ui/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/rdebrid-ui/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "decluttarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rdtclient/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "File": { 4 | "Path": "/data/logs/rdtclient.log", 5 | "FileSizeLimitBytes": 5242880, 6 | "MaxRollingFiles": 5 7 | } 8 | }, 9 | "Database": { 10 | "Path": "/data/db/rdtclient.db" 11 | }, 12 | "Port": "6500", 13 | "BasePath": "" 14 | } -------------------------------------------------------------------------------- /apps/rdtclient/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | source "/scripts/vpn.sh" 5 | 6 | #shellcheck disable=SC2086 7 | 8 | # We run from /tmp so that we can create a temporary folder for this, and leave /app as read-only 9 | cd /tmp 10 | cp /app/appsettings.json ./ 11 | cp /app/wwwroot ./ -rf 12 | 13 | exec \ 14 | dotnet /app/RdtClient.Web.dll -------------------------------------------------------------------------------- /apps/rdtclient/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "rdtclient", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/readarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | channel=$1 3 | version=$(curl -s "https://readarr.servarr.com/v1/update/${channel}/changes?os=linux&runtime=netcore" | jq --raw-output '.[0].version') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/requestrr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # process: 4 | # gatus: 5 | # running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | # port: 9 | # # https://github.com/aelsabbahy/goss/issues/149 10 | # tcp6:8080: 11 | # listening: true 12 | 13 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 14 | http: 15 | http://localhost:4545: 16 | status: 200 17 | -------------------------------------------------------------------------------- /apps/requestrr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/thomst08/requestrr/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/requestrr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "requestrr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/resilio-sync/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | rslsync: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8888: 10 | status: 200 11 | http://localhost:55555: 12 | status: 200 13 | -------------------------------------------------------------------------------- /apps/resilio-sync/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET https://linux-packages.resilio.com/resilio-sync/deb/dists/resilio-sync/non-free/binary-amd64/Packages |grep -A 7 -m 1 'Package: resilio-sync' | awk -F ': ' '/Version/{print $2;exit}')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/resilio-sync/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | rslsync \ 9 | --nodaemon --config /config/sync.conf -------------------------------------------------------------------------------- /apps/resilio-sync/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "resilio-sync", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/riven-frontend/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | channel=$1 4 | version="$(curl -sX GET "https://api.github.com/repos/rivenmedia/riven-frontend/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/riven-frontend/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "riven-frontend", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/riven/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | channel=$1 4 | version="$(curl -sX GET "https://api.github.com/repos/rivenmedia/riven/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/riven/launch-tmux-dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | tmux -f /riven/restricted.tmux.conf new-session -A -s riven /riven/riven-dev.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/riven/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | tmux -f /riven/restricted.tmux.conf new-session -A -s riven /riven/riven.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/riven/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "riven", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rpdb/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | rpdb-folders: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8750: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/rpdb/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/RatingPosterDB/rpdb-folders/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/rpdb/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "rpdb", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rreading-glasses/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/blampe/rreading-glasses/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/rreading-glasses/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "rreading-glasses", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/rutorrent/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | # rtorrent: # fails testing even when it's ok 5 | # running: true 6 | nginx: 7 | running: true 8 | 9 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 10 | http: 11 | http://localhost:8080: 12 | status: 200 13 | timeout: 5000 14 | -------------------------------------------------------------------------------- /apps/rutorrent/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/crazy-max/docker-rtorrent-rutorrent/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | version="${version%-r0}" 6 | version="${version%-r1}" 7 | printf "%s" "${version}" 8 | -------------------------------------------------------------------------------- /apps/rutorrent/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "rutorrent", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/scannarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/Pukabyte/scannarr/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 4 | printf "%s" "${version}" 5 | 6 | -------------------------------------------------------------------------------- /apps/scannarr/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec -c 'cd backend && source /venv/bin/activate && exec python /iceberg/backend/main.py & ORIGIN=$ORIGIN node /iceberg/frontend/build' -------------------------------------------------------------------------------- /apps/scannarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "scannarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/seafile/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION=11.0.2 2 | FROM seafileltd/seafile-mc:${VERSION} as upstream 3 | 4 | # Deal with requirement to run as user 568 5 | RUN sed -i 's/8000/568/g' /scripts/enterpoint.sh 6 | 7 | EXPOSE 8000 8 | 9 | -------------------------------------------------------------------------------- /apps/seafile/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | autobrr: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:7474: 10 | status: 200 11 | timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/seafile/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # version=$(curl -sX GET https://api.github.com/repos/autobrr/autobrr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version="${version#*v}" 4 | # version="${version#*release-}" 5 | # printf "%s" "${version}" 6 | echo 10.0.1 # until we can find a better way to determine the latest release -------------------------------------------------------------------------------- /apps/seafile/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "seafile", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/seerrbridge/bridgeboard/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3777: 10 | status: 200 -------------------------------------------------------------------------------- /apps/seerrbridge/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/seerrbridge/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s seerrbridge /seerrbridge.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/seonaut/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # process: 4 | # gatus: 5 | # running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | port: 9 | # https://github.com/aelsabbahy/goss/issues/149 10 | tcp6:9000: 11 | listening: true 12 | 13 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 14 | http: 15 | http://localhost:9000: 16 | status: 200 17 | -------------------------------------------------------------------------------- /apps/seonaut/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/StJudeWasHere/seonaut/commits/master" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | -------------------------------------------------------------------------------- /apps/seonaut/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "seonaut", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/shluflix/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(git ls-remote https://bitbucket.org/shluflix-stremio/shluflix.git HEAD | awk '{ print $1}') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/shluflix/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "shluflix", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/shokoserver/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/shokoanime/shokoserver/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/shokoserver/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "shokoserver", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/simple-proxy/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/simple-proxy/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | channel=$1 4 | version=$(curl -sX GET "https://api.github.com/repos/p-stream/simple-proxy/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 5 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/simple-proxy/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "simple-proxy", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/sonarr/scripts/prepare-scripts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | 3 | git clone https://github.com/RandomNinjaAtk/arr-scripts.git /tmp/arr-scripts 4 | cd /tmp/arr-scripts 5 | 6 | for service in $(ls sonarr/*.service); do 7 | mkdir -p /etc/s6-overlay/s6-rc.d/$service 8 | mv $service /etc/s6-overlay/s6-rc.d/$service/run 9 | echo longrun > /etc/s6-overlay/s6-rc.d/$service/type 10 | done -------------------------------------------------------------------------------- /apps/storyteller/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -s "https://gitlab.com/api/v4/projects/storyteller-platform%2Fstoryteller/repository/tags" | jq -r '.[].name' | grep '^web-' | sort -Vr | head -n 1)" 3 | version="${version#*web-}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/storyteller/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "storyteller", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-easynews-addon/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET https://api.github.com/repos/sleeyax/stremio-easynews-addon/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/stremio-easynews-addon/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-easynews-addon", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "dev", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-jackett-cacher/ci/latest.sh: -------------------------------------------------------------------------------- 1 | version=$(curl -sX GET "https://api.github.com/repos/aymene69/stremio-jackett-cacher/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 2 | printf "%s" "${version}" 3 | -------------------------------------------------------------------------------- /apps/stremio-jackett-cacher/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-jackett-cacher", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-jackett-community/ci/latest.sh: -------------------------------------------------------------------------------- 1 | version=$(curl -sX GET https://api.github.com/repos/aymene69/stremio-jackett-community/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 2 | printf "%s" "${version}" 3 | -------------------------------------------------------------------------------- /apps/stremio-jackett-community/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-jackett-community", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-jackett/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/aymene69/stremio-jackett/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version=$(curl -sX GET "https://api.github.com/repos/aymene69/stremio-jackett/commits/dev" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 4 | 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/stremio-jackett/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-jackett", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-rating-addon/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3000: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/stremio-rating-addon/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/hexdecimal16/stremio-rating-addon/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/stremio-rating-addon/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-rating-addon", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-server/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM docker.io/stremio/server:${VERSION} as upstream 3 | 4 | COPY ./apps/alpine/scripts/vpn.sh /scripts/vpn.sh 5 | COPY ./apps/stremio-server/entrypoint.sh /entrypoint.sh 6 | CMD [] 7 | ENTRYPOINT ["/entrypoint.sh"] -------------------------------------------------------------------------------- /apps/stremio-server/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:11470: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/stremio-server/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | printf "%s" "v4.20.8" # hard-coded for now -------------------------------------------------------------------------------- /apps/stremio-server/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | source "/scripts/vpn.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | node server.js -------------------------------------------------------------------------------- /apps/stremio-server/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-server", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremio-web/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/iPromKnight/stremio-web/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/stremio-web/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremio-web", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/stremthru/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 3 | http: 4 | http://localhost:8080: 5 | status: 200 6 | -------------------------------------------------------------------------------- /apps/stremthru/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/MunifTanjim/stremthru/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/stremthru/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | poetry run python3 main.py -------------------------------------------------------------------------------- /apps/stremthru/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremthru", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | 19 | -------------------------------------------------------------------------------- /apps/suggestarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/giuseppe99barchetta/SuggestArr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/suggestarr/logging.yaml: -------------------------------------------------------------------------------- 1 | version: 1 2 | formatters: 3 | default: 4 | format: "%(levelprefix)s %(message)s" 5 | handlers: 6 | file: 7 | class: logging.FileHandler 8 | filename: /logs/suggestarr.log 9 | formatter: default 10 | loggers: 11 | uvicorn: 12 | handlers: [file] 13 | level: ERROR 14 | -------------------------------------------------------------------------------- /apps/suggestarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "suggestarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/symlink-cleaner/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:5000: 10 | status: 200 -------------------------------------------------------------------------------- /apps/symlink-cleaner/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "symlink-cleaner", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/syncthing/builtin.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh - 2 | echo "${0##*/}" "$@" -------------------------------------------------------------------------------- /apps/syncthing/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/syncthing/syncthing/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/syncthing/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "filebrowser", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/tautulli/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/Tautulli/Tautulli/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/tautulli/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /usr/bin/python3 \ 9 | /app/Tautulli.py \ 10 | --nolaunch \ 11 | --config /config/config.ini \ 12 | --datadir /config \ 13 | "$@" 14 | -------------------------------------------------------------------------------- /apps/tautulli/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "tautulli", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/thelounge/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/thelounge/thelounge/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/thelounge/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC2086 4 | exec \ 5 | /usr/local/bin/thelounge \ 6 | start \ 7 | "$@" 8 | -------------------------------------------------------------------------------- /apps/thelounge/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "thelounge", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/theme-park/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/themepark-dev/theme.park/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/theme-park/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "theme-park", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/threadfin/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Threadfin/Threadfin/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/threadfin/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "threadfin", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/tinyproxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/elfhosted/alpine:rolling@sha256:42c34434da805c1c907c64e360538654a84379cd5bbfba10a73870c50db44a87 2 | 3 | # Install dante-server, sockd user will be created 4 | RUN apk add --no-cache curl tinyproxy 5 | # Default configuration 6 | COPY apps/tinyproxy/entrypoint.sh / 7 | 8 | USER 568 9 | 10 | ENTRYPOINT ["/entrypoint.sh"] 11 | 12 | -------------------------------------------------------------------------------- /apps/tinyproxy/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Manually updated from https://www.inet.no/dante/ 3 | printf "%s" "v1.4.3" -------------------------------------------------------------------------------- /apps/tinyproxy/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | source "/scripts/vpn.sh" 5 | 6 | exec \ 7 | /usr/bin/tinyproxy -d -------------------------------------------------------------------------------- /apps/tinyproxy/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "tinyproxy", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/tmdb-addon/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | # http: 9 | # http://localhost:3000: 10 | # status: 200 11 | -------------------------------------------------------------------------------- /apps/tmdb-addon/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/mrcanelas/tmdb-addon/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/tmdb-addon/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | exec -c 'cd backend && source /venv/bin/activate && exec python /iceberg/backend/main.py & ORIGIN=$ORIGIN node /iceberg/frontend/build' -------------------------------------------------------------------------------- /apps/tmdb-addon/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "tmbd-addon", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/tooling/.bash_profile: -------------------------------------------------------------------------------- 1 | # Get the aliases and functions 2 | if [ -f ~/.bashrc ]; then 3 | . ~/.bashrc 4 | fi 5 | # User specific environment and startup programs 6 | readonly PATH=$HOME/programs 7 | export PATH 8 | alias k=kubectl 9 | complete -F __start_kubectl k -------------------------------------------------------------------------------- /apps/tooling/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | channel=$1 3 | version=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/ubuntu/tags?ordering=name&name=$channel" | jq --raw-output --arg s "$channel" '.results[] | select(.name | contains($s)) | .name' | head -n1) 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/tooling/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s elfterm rbash -l 4 | 5 | -------------------------------------------------------------------------------- /apps/tooling/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "tooling", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "focal", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/tooling/scripts/iptables-torrents-update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | while true 3 | do 4 | date 5 | echo "Retreving iptables config from B2..." 6 | s3cmd --config /.s3cfg sync -v s3://goldilocks/config/iptables-torrents /tmp/ 7 | echo "Restoring iptables..." 8 | iptables-restore /tmp/iptables-torrents 9 | echo "Sleeping 5 min..." 10 | sleep 5m 11 | done -------------------------------------------------------------------------------- /apps/tooling/scripts/run-public-torrent-client.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | while true 3 | do 4 | date 5 | echo "Retreving public_torrent_client.sh from B2..." 6 | s3cmd --config /.s3cfg sync -v s3://goldilocks/config/public_torrent_client.sh /tmp/ 7 | echo "Running /tmp/public_torrent_client.sh..." 8 | bash /tmp/public_torrent_client.sh 9 | echo "Sleeping 5 min..." 10 | sleep 5m 11 | done -------------------------------------------------------------------------------- /apps/tooling/scripts/tripwire-deluge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | while true 4 | do 5 | date 6 | echo "Checking that critical Deluge settings have not been tampered with..." 7 | grep -q '"remove_seed_at_ratio": true,' /config/core.conf 8 | grep -q '"stop_seed_ratio": 1,' /config/core.conf 9 | echo "Sleeping 5 min..." 10 | sleep 5m 11 | done -------------------------------------------------------------------------------- /apps/tooling/scripts/tripwire-qbittorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | while true 4 | do 5 | date 6 | echo "Checking that critical qBittorrent settings have not been tampered with..." 7 | grep -q 'Session\\MaxRatioAction=1' /config/qBittorrent/qBittorrent.conf 8 | grep -q 'Session\\GlobalMaxRatio=1' /config/qBittorrent/qBittorrent.conf 9 | echo "Sleeping 5 min..." 10 | sleep 5m 11 | done -------------------------------------------------------------------------------- /apps/torrentio-producer/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/elfhosted/torrentio.elfhosted.com/commits/${channel}" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/torrentio-producer/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "torrentio-producer", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/ubuntu/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | channel=$1 3 | version=$(curl -s "https://registry.hub.docker.com/v2/repositories/library/ubuntu/tags?ordering=name&name=$channel" | jq --raw-output --arg s "$channel" '.results[] | select(.name | contains($s)) | .name' | head -n1) 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /apps/ubuntu/scripts/elfscript.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Execute any scripts found in /elfscript 4 | for SCRIPT in $(ls /elfscript); do 5 | bash -c $SCRIPT 6 | done 7 | -------------------------------------------------------------------------------- /apps/ubuntu/scripts/greeting.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo " 4 | You are entering the vicinity of an area adjacent to a location. 5 | The kind of place where there might be a monster, or some kind of weird mirror. 6 | These are just examples; it could also be something much better. 7 | " 8 | -------------------------------------------------------------------------------- /apps/ubuntu/scripts/umask.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | umask "${UMASK:-0002}" 4 | -------------------------------------------------------------------------------- /apps/unpackerr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | unpackerr: 5 | running: true 6 | -------------------------------------------------------------------------------- /apps/unpackerr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Unpackerr/unpackerr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/unpackerr/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC2086 4 | if [ -f /config/unpackerr.conf ]; 5 | then 6 | exec \ 7 | /app/unpackerr \ 8 | -c "/config/unpackerr.conf" 9 | else 10 | exec \ 11 | /app/unpackerr 12 | fi -------------------------------------------------------------------------------- /apps/unpackerr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "unpackerr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/uptime-kuma/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3001: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/uptime-kuma/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/louislam/uptime-kuma/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/uptime-kuma/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | exec \ 8 | /usr/bin/python3 \ 9 | /app/calibre-web/cps.py \ 10 | "$@" 11 | -------------------------------------------------------------------------------- /apps/uptime-kuma/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "uptime-kuma", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/vaultwarden/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | vaultwarden: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | # http: 9 | # http://localhost:8080: 10 | # status: 200 11 | # timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/vaultwarden/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/dani-garcia/vaultwarden/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/vaultwarden/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "vaultwarden", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/wallabag/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/wallabag/wallabag/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/wallabag/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "wallabag", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/webhook-receiver/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | process: 4 | webhook: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 8 | port: 9 | # https://github.com/aelsabbahy/goss/issues/149 10 | tcp6:9000: 11 | listening: true 12 | 13 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 14 | http: 15 | http://localhost:9000: 16 | status: 200 17 | -------------------------------------------------------------------------------- /apps/webhook-receiver/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/adnanh/webhook/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/webhook-receiver/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "webhook-receiver", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/webstreamr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/webstreamr/webstreamr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/webstreamr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "webstreamr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/wests-blackhole-script/auth.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Create a dummy tokens.json if it doesn't exist 4 | if [ ! -f /config/tokens.json ]; then 5 | echo "{}" > /config/tokens.json 6 | fi 7 | 8 | if [[ -z "${OVERSEERR_HOST}" ]]; then 9 | echo "OVERSEERR_HOST env var is not set, sleeping..." 10 | sleep infinity 11 | fi 12 | 13 | cd /app 14 | gunicorn --bind 0.0.0.0:32501 plex_authentication_wsgi:app -------------------------------------------------------------------------------- /apps/wests-blackhole-script/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/wests-blackhole-script/dev/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | python3: 5 | running: true -------------------------------------------------------------------------------- /apps/wests-blackhole-script/launch-tmux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tmux -f /restricted.tmux.conf new-session -A -s blackhole /blackhole.sh 4 | 5 | -------------------------------------------------------------------------------- /apps/wests-blackhole-script/request.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ -z "${OVERSEERR_HOST}" ]]; then 4 | echo "OVERSEERR_HOST env var is not set, sleeping..." 5 | sleep infinity 6 | fi 7 | 8 | cd /app 9 | gunicorn --bind 0.0.0.0:32502 plex_request_wsgi:app -------------------------------------------------------------------------------- /apps/wests-blackhole-script/watchlist.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ -z "${OVERSEERR_HOST}" ]]; then 4 | echo "OVERSEERR_HOST env var is not set, sleeping..." 5 | sleep infinity 6 | fi 7 | 8 | cd /app 9 | python watchlist_runner.py -------------------------------------------------------------------------------- /apps/wireguard/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | node: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:3001: 10 | status: 200 11 | -------------------------------------------------------------------------------- /apps/wireguard/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/WireGuard/wireguard-tools/tags" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.[0].name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /apps/wireguard/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "wireguard", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/wizarr/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | uv: 5 | running: true 6 | 7 | # # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | # http: 9 | # http://localhost:5690: 10 | # status: 200 11 | # timeout: 5000 12 | -------------------------------------------------------------------------------- /apps/wizarr/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/wizarrrr/wizarr/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /apps/wizarr/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "wizarr", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /apps/zilean/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/iPromKnight/zilean/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | 4 | printf "%s" "${version}" -------------------------------------------------------------------------------- /apps/zilean/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | poetry run python3 main.py -------------------------------------------------------------------------------- /apps/zilean/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "zilean", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | 19 | -------------------------------------------------------------------------------- /apps/zurg/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/debridmediamanager/zurg-testing/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*release-}" 4 | printf "%s" "${version}" 5 | 6 | -------------------------------------------------------------------------------- /apps/zurg/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "zurg", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/airdcpp/.airdcpp/WebServer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /disabled/airdcpp/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#port 3 | port: 4 | # https://github.com/aelsabbahy/goss/issues/149 5 | tcp:5600: 6 | listening: true 7 | 8 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 9 | http: 10 | http://localhost:5600: 11 | status: 200 12 | -------------------------------------------------------------------------------- /disabled/airdcpp/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/airdcpp-web/airdcpp-webclient/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | printf "%s" "${version}" 4 | # printf "2.12.0" 5 | 6 | -------------------------------------------------------------------------------- /disabled/airdcpp/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "airdcpp", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/deluge/app/deluge.Userpass.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Deluge password generator 4 | # 5 | # deluge.password.py 6 | # 7 | # 8 | 9 | import hashlib 10 | import sys 11 | 12 | password = sys.argv[1].encode('utf-8') 13 | salt = sys.argv[2].encode('utf-8') 14 | 15 | s = hashlib.sha1() 16 | s.update(salt) 17 | s.update(password) 18 | 19 | print(s.hexdigest()) -------------------------------------------------------------------------------- /disabled/deluge/app/deluge.addHost.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Deluge hostlist id generator 4 | # 5 | # deluge.addHost.py 6 | # 7 | # 8 | 9 | import hashlib 10 | import sys 11 | import time 12 | 13 | print(hashlib.sha1(str(time.time()).encode('utf-8')).hexdigest()) -------------------------------------------------------------------------------- /disabled/deluge/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | deluge: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8112: 10 | status: 200 11 | -------------------------------------------------------------------------------- /disabled/deluge/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://repology.org/api/v1/projects/?search=deluge&inrepo=alpine_edge" -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" | jq -r '.deluge | .[] | select((.repo == "alpine_edge" and .binname == "deluge")) | .version') 3 | version="${version%%_*}" 4 | version="${version%%-*}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /disabled/deluge/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "deluge", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/error-pages/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/tarampampam/error-pages/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | # version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /disabled/error-pages/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "error-pages", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/fake-torrent-server/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | uvicorn: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:8000/Movie.Title.2024.2160p.BluRay.x265-GROUP.torrent: 10 | status: 200 -------------------------------------------------------------------------------- /disabled/fake-torrent-server/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/Pukabyte/fake-torrent-server/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /disabled/fake-torrent-server/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "fake-torrent-server", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/gotify/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM gotify/server:${VERSION} as upstream 3 | FROM ghcr.io/elfhosted/ubuntu:rolling@sha256:2ba3258c7cc40330bfea13a600ca6762591d677db211a3255fbf44d4635481f0 4 | COPY --from=upstream /app /app 5 | WORKDIR /app 6 | EXPOSE 80 7 | USER 568 8 | ENTRYPOINT ["./gotify-app"] -------------------------------------------------------------------------------- /disabled/gotify/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | gotify-app: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:80: 10 | status: 200 11 | -------------------------------------------------------------------------------- /disabled/gotify/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/gotify/server/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /disabled/gotify/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "gotify", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/joplin-server/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags https://github.com/laurent22/joplin.git 'server-*.*.*' | tail --lines=1 | cut -d\- -f2) 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /disabled/joplin-server/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "joplin-server", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/lazylibrarian/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://gitlab.com/api/v4/projects/9317860/repository/commits/master" | awk '/id/{print $4;exit}' FS='[""]')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /disabled/lazylibrarian/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #shellcheck disable=SC1091 4 | test -f "/scripts/umask.sh" && source "/scripts/umask.sh" 5 | 6 | #shellcheck disable=SC2086 7 | cd /config # This ensures that our logs go to the writeable /config volume 8 | exec \ 9 | /usr/bin/python3 /app/lazylibrarian/LazyLibrarian.py \ 10 | --datadir /config --nolaunch -------------------------------------------------------------------------------- /disabled/lazylibrarian/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "lazylibrarian", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/qbittorrent/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "qbittorrent", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/sabnzbd/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version="$(curl -sX GET "https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name')" 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /disabled/sabnzbd/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "sabnzbd", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/stremify/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET "https://api.github.com/repos/stremify/stremify/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 3 | printf "%s" "${version}" -------------------------------------------------------------------------------- /disabled/stremify/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "stremify", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "master", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": true, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/traefik-forward-auth/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG VERSION 2 | FROM mesosphere/traefik-forward-auth:${VERSION} as upstream 3 | FROM ghcr.io/elfhosted/alpine:rolling@sha256:42c34434da805c1c907c64e360538654a84379cd5bbfba10a73870c50db44a87 4 | COPY --from=upstream /traefik-forward-auth /traefik-forward-auth 5 | EXPOSE 4181 6 | ENTRYPOINT ["/traefik-forward-auth"] -------------------------------------------------------------------------------- /disabled/traefik-forward-auth/ci/goss.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#process 3 | process: 4 | traefik-forward-auth: 5 | running: true 6 | 7 | # https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#http 8 | http: 9 | http://localhost:4181: 10 | status: 200 11 | -------------------------------------------------------------------------------- /disabled/traefik-forward-auth/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/mesosphere/traefik-forward-auth/releases/latest" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.tag_name') 4 | version="${version#*v}" 5 | version="${version#*release-}" 6 | printf "%s" "${version}" 7 | -------------------------------------------------------------------------------- /disabled/traefik-forward-auth/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "traefik-forward-auth", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "stable", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "web" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/warp/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/qdm12/gluetun/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /disabled/warp/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # If gluetun vars exist, then don't actually, just do nothing (useful when we control how a pod will run based on an env var) 4 | if [[ ! -z "$ZURG_GLUETUN_ENABLED" ]]; 5 | then 6 | echo "ZURG_GLUETUN_ENABLED env var set, doing nothing (you are probably using gluetun).." 7 | sleep infinity 8 | else 9 | exec \ 10 | /orig-entrypoint.sh 11 | fi -------------------------------------------------------------------------------- /disabled/warp/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "app": "warp", 3 | "base": false, 4 | "channels": [ 5 | { 6 | "name": "main", 7 | "platforms": [ 8 | "linux/amd64" 9 | ], 10 | "stable": true, 11 | "tests": { 12 | "enabled": false, 13 | "type": "cli" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /disabled/youriptv/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | version=$(curl -sX GET "https://api.github.com/repos/mikmc55/epgtv/commits/main" --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '.sha') 4 | printf "%s" "${version}" 5 | -------------------------------------------------------------------------------- /disabled/youtubedl-material/ci/latest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | version=$(curl -sX GET https://api.github.com/repos/Tzahi12345/YoutubeDL-Material/releases/latest --header "Authorization: Bearer ${TOKEN}" | jq --raw-output '. | .tag_name') 3 | version="${version#*v}" 4 | version="${version#*release-}" 5 | printf "%s" "${version}" 6 | -------------------------------------------------------------------------------- /metadata.rules.cue: -------------------------------------------------------------------------------- 1 | #Spec: { 2 | app: #NonEmptyString 3 | base: bool 4 | channels: [...#Channels] 5 | } 6 | 7 | #Channels: { 8 | name: #NonEmptyString 9 | platforms: [...#AcceptedPlatforms] 10 | stable: bool 11 | tests: { 12 | enabled: bool 13 | type?: =~"^(cli|web)$" 14 | } 15 | } 16 | 17 | #NonEmptyString: string & !="" 18 | #AcceptedPlatforms: "linux/amd64" | "linux/arm64" 19 | --------------------------------------------------------------------------------