Skip to content

holtwick/selfhosted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

7 Commits

Repository files navigation

selfhosted

My personal choice of self-hosted apps.

This project is accompanied by toots on Mastodon:mastodon.social/@holtwick.

My Recommended Services

  • BirdsiteLiveis a Twitter to Mastodon proxy. You can follow Twitter accounts as if they were Mastodon ones.-> github
  • Giteais a bit like Github, but for smaller groups. It helps you to manage code and tickets. But also provides a super easy registry for your private packages. it is tiny and fast.-> gitea.io
  • Nextcloudis your "Cloud Service". I use it for file sharing mainly. But it can do most things Google and Apple offer as well, like mail, contacts, calendar, office tools.-> nextcloud
  • LanguageToolLanguageTool is your private instance of the best grammar and spell checker available. When you use this private instance, you have less to worry about non-public texts going through a public checking service.-> languagetool.org

New entries from time to time...

Get Started

I run my stuff on acloud server instance at Hetzner.There I choose the "Docker" presets. Any other provider will probably work as well.

Then the first thing to do is to set up aNginx Proxy Manager.This is as easy as creating a folder namedproxyand put thisdocker-compose.ymlfile in it. Then start withdocker compose up -d.

The proxy does two things:

  1. It manages your projects
  2. It manages your SSL certificates via Let's Encrypt

Now we can get started setting up more services. The best thing to do upfront is to configure a wildcard in your DNS, like*.selfhosted.examplepointing to your cloud server instance.

Setup Project

To install a project:

  1. Copy thedocker-compose.ymlto a subfolder on your cloud server.
  2. Start it from there withdocker compose up -d.
  3. In the web interface of the Nginx Proxy create a "Proxy Host" with:
    • Domain Names: Something likemy.selfhosted.example
    • Scheme:http
    • Forward Hostname / IP: Thecontainer_nameyou chose in thedocker-compose.yml.
    • Forward Port: The port the service usually uses.
  4. You can then also request the SSL certificate from there.

Please note, that eachdocker-compose.ymlincludes these lines:

networks:
default:
external:
name:proxy

This is required to allow connection to the Nginx Proxy.

Another convention is to not use Docker volumes but redirect to a localdatafolder. This helps with backups and porting to other instances.