{"id":15982937,"url":"https://github.com/loftwah/god-tier-self-hosting","last_synced_at":"2025-05-07T07:01:31.515Z","repository":{"id":58309721,"uuid":"528701667","full_name":"loftwah/god-tier-self-hosting","owner":"loftwah","description":"God tier self-hosting with Loftwah. Because open source and self-hosting is my religion.","archived":false,"fork":false,"pushed_at":"2022-09-01T07:53:44.000Z","size":646,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T07:34:08.289Z","etag":null,"topics":["docker","docker-compose","homelab","open-source","self-hosted"],"latest_commit_sha":null,"homepage":"https://loftwah.github.io/god-tier-self-hosting","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loftwah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"loftwah"}},"created_at":"2022-08-25T05:04:56.000Z","updated_at":"2024-03-11T06:01:07.000Z","dependencies_parsed_at":"2023-01-17T19:30:11.844Z","dependency_job_id":null,"html_url":"https://github.com/loftwah/god-tier-self-hosting","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loftwah%2Fgod-tier-self-hosting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loftwah%2Fgod-tier-self-hosting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loftwah%2Fgod-tier-self-hosting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loftwah%2Fgod-tier-self-hosting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loftwah","download_url":"https://codeload.github.com/loftwah/god-tier-self-hosting/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252831253,"owners_count":21810783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","homelab","open-source","self-hosted"],"created_at":"2024-10-08T01:23:35.450Z","updated_at":"2025-05-07T07:01:31.404Z","avatar_url":"https://github.com/loftwah.png","language":null,"funding_links":["https://github.com/sponsors/loftwah"],"categories":[],"sub_categories":[],"readme":"# Self Hosting\n\n![Banner Image](images/banner.png)\n\nThis is a repo for stuff that I host myself locally. Since Heroku has notified people it is removing the free tier you might want to check out [free-for.dev](https://free-for.dev/).\n\n## Table of Contents\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Table of Contents**\n\n- [Requirements](#requirements)\n- [Localtunnel](#localtunnel)\n  - [Localtunnel Usage](#localtunnel-usage)\n- [Nginx Proxy Manager](#nginx-proxy-manager)\n- [Piping Server](#piping-server)\n  - [Transfer](#transfer)\n  - [Self-host on Docker](#self-host-on-docker)\n- [Portainer](#portainer)\n  - [Portainer Templates](#portainer-templates)\n- [Vaultwarden](#vaultwarden)\n  - [Vaultwarden Usage](#vaultwarden-usage)\n    - [Configure Rclone](#configure-rclone)\n      - [Configure and Check](#configure-and-check)\n    - [Backup](#backup)\n    - [Restore](#restore)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Requirements\n\nThe requirements to run most of what is in here are as follows:\n\n- [Docker](https://www.docker.com/)\n- [Docker-Compose](https://docs.docker.com/compose/install/)\n- [Node.js](https://nodejs.org/en/)\n- [NPM](https://www.npmjs.com/)\n\n## Localtunnel\n\n[Localtunnel](https://github.com/localtunnel/localtunnel) | [Localtunnel Server](https://github.com/localtunnel/server)\n\nLocaltunnel is great if you don't have a static IP address, or if you are behind carrier grade NAT.\n\n### Localtunnel Usage\n\nTo quickly set up localtunnel, run the following command:\n\n```bash\nnpx localtunnel --port 8000\n```\n\nOr if you want to install the package:\n\n```bash\nnpm install -g localtunnel\nlt --port 8000\n```\n\n- `--subdomain` request a named subdomain on the localtunnel server (default is random characters)\n- `--local-host` proxy to a hostname other than localhost\n\nExample:\n\n```bash\nlt --port 8000 --subdomain loftwah-sucks --local-host loftwah.local\n```\n\nThis would expose `loftwah-sucks.localtunnel.me` to `loftwah.local:8000` on your local network.\n\n## Nginx Proxy Manager\n\n[Nginx Proxy Manager](https://nginxproxymanager.com/)\n\nNginx Proxy Manager is a great way to manage your proxies. Use the Docker Compose template in the `nginx-proxy-manager` directory.\n\nDefault credentials are:\n\n| Default User | Default Password |\n|--------------|------------------|\n| admin@example.com | changeme |\n\n```bash\ncd nginx-proxy-manager\ndocker-compose up -d\n```\n\n## Piping Server\n\n[Piping Server](https://github.com/nwtgck/piping-server)\n\nInfinitely transfer between every device over HTTP/HTTPS\n\n### Transfer\n\nPiping Server is simple. You can transfer as follows.\n\n```bash\n# Send\necho 'hello, world' | curl -T - https://ppng.io/hello\n# Get\ncurl https://ppng.io/hello \u003e hello.txt\n```\n\nPiping Server transfers data to POST /hello or PUT /hello into GET /hello. The path /hello can be anything such as /mypath or /mypath/123/. A sender and receivers who specify the same path can transfer. Both the sender and the recipient can start the transfer first. The first one waits for the other.\n\nYou can also use Web UI like [ppng.io](https://ppng.io) on your browser. A more modern UI is found in [piping-ui.org](https://piping-ui.org), which supports E2E encryption.\n\n### Self-host on Docker\n\nRun a Piping Server on [localhost:8080](http://localhost:8080) as follows.\n\n```bash\ndocker run -p 8080:8080 nwtgck/piping-server\n```\n\nRun a server in background and it automatically always restarts.\n\n```bash\ndocker run -p 8080:8080 -d --restart=always nwtgck/piping-server\n```\n\n## Portainer\n\n[Portainer](https://www.portainer.io/) | [Shipwright](https://github.com/SelfhostedPro/Shipwright)\n\nPortainer is a web interface for Docker.\n\n### Portainer Templates\n\n[Selfhosted Pro](https://github.com/SelfhostedPro/selfhosted_templates) | [Technorabilia](https://github.com/technorabilia/portainer-templates/tree/main/lsio/templates) | [Pi-hosted](https://github.com/pi-hosted/pi-hosted)\n\n- [App list](https://github.com/pi-hosted/pi-hosted/blob/master/docs/AppList.md) for Pi-hosted\n\nPortainer templates are great for people who don't want to get their hands dirty in the command line, or don't have the greatest understanding of Docker or Linux. It makes it easier to get it up and running quickly. I'm not sure which templates are the best but here are a couple of repositories that have some good templates.\n\n## Vaultwarden\n\n[Vaultwarden](https://github.com/dani-garcia/vaultwarden) | [Vaultwarden Backup](https://github.com/ttionya/vaultwarden-backup)\n\nVaultwarden is a self hostable version of Bitwarden. It can be launched via Docker Compose.\n\n### Vaultwarden Usage\n\n\u003e **Important:** We assume you already read the `vaultwarden` [documentation](https://github.com/dani-garcia/vaultwarden/wiki).\n\n#### Configure Rclone\n\n\u003e **For backup, you need to configure Rclone first, otherwise the backup tool will not work.**\n\u003e \n\u003e **For restore, it is not necessary.**\n\nWe upload the backup files to the storage system by [Rclone](https://rclone.org/).\n\nVisit [GitHub](https://github.com/rclone/rclone) for more storage system tutorials. Different systems get tokens differently.\n\n##### Configure and Check\n\nYou can get the token by the following command.\n\n```shell\ndocker run --rm -it \\\n  --mount type=volume,source=vaultwarden-rclone-data,target=/config/ \\\n  ttionya/vaultwarden-backup:latest \\\n  rclone config\n```\n\n**We recommend setting the remote name to `BitwardenBackup`, otherwise you need to specify the environment variable `RCLONE_REMOTE_NAME` as the remote name you set.**\n\nAfter setting, check the configuration content by the following command.\n\n```shell\ndocker run --rm -it \\\n  --mount type=volume,source=vaultwarden-rclone-data,target=/config/ \\\n  ttionya/vaultwarden-backup:latest \\\n  rclone config show\n\n# Microsoft Onedrive Example\n# [BitwardenBackup]\n# type = onedrive\n# token = {\"access_token\":\"access token\",\"token_type\":\"token type\",\"refresh_token\":\"refresh token\",\"expiry\":\"expiry time\"}\n# drive_id = driveid\n# drive_type = personal\n```\n\n#### Backup\n\nIf you are a new user or are rebuilding vaultwarden, it is recommended to use the `docker-compose.yml` from the project.\n\nDownload `docker-compose.yml` to you machine, edit environment variables and start it.\n\nYou need to go to the directory where the `docker-compose.yml` file is saved.\n\n```shell\n# Start\ndocker-compose up -d\n\n# Stop\ndocker-compose stop\n\n# Restart\ndocker-compose restart\n\n# Remove\ndocker-compose down\n```\n\n#### Restore\n\n\u003e **Important:** Restore will overwrite the existing files.\n\nYou need to stop the Docker container before the restore.\n\nYou also need to download the backup files to your local machine.\n\nBecause the host's files are not accessible in the Docker container, you need to map the directory where the backup files that need to be restored are located to the docker container.\n\n**And go to the directory where your backup files to be restored are located.**\n\nIf you use the `docker-compose.yml` provided with this project, you can use the following command.\n\n```shell\ndocker run --rm -it \\\n  --mount type=volume,source=vaultwarden-data,target=/bitwarden/data/ \\\n  --mount type=bind,source=$(pwd),target=/bitwarden/restore/ \\\n  ttionya/vaultwarden-backup:latest restore \\\n  [OPTIONS]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floftwah%2Fgod-tier-self-hosting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floftwah%2Fgod-tier-self-hosting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floftwah%2Fgod-tier-self-hosting/lists"}