Skip to content

jhotmann/personal-cloud-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

personal-cloud-starter

An opinionated Docker Compose template to get a self-hosted server up and running quick.

Many of the internet services we rely on every day exist solely to use your data to try to target you more accurately for advertising purposes. Luckily, there are a plethora of open-source tools that allow you to host your own similar services and reduce your reliance on untrustworthy corporations. This repository is aimed at those who are new to self-hosting who want to spin up their own person cloud without needing to spend weeks researching all the different ways to accomplish this task.

Apps

  1. Nextcloud is a great platform to cover a lot of your needs with a single application. Nextcloud's main function is to store and share files like Dropbox, Google Drive, or one of the million other file hosting websites available. But Nextcloud also has the ability to install apps to extend its functionality. Apps like Notes, Contacts, and Calendar will have you de-Googling in no time.
  2. Bitwarden (via the Valutwarden fork) is a fantastic, open source password manager with features like organizations to share passwords with others, secure file and secret sharing, and tools to help you mitigate damage from data breaches. Get all the paid features by hosting yourself.
  3. Miniflux is a minimal RSS reader and aggregator. Get your news straight from the websites you trust without relying on an algorithmic news feed to show you what it thinks you want to see.

Background Applications

  1. MariaDB is an open source SQL database supported by many applications
  2. PostgreSQL is another great open source SQL database. Most applications should support Maria, Postgres, or both.
  3. Caddy via Caddy-Docker-Proxy is a web server and reverse proxy that we will use to point requests from mysubdomain.example.com to the correct container and port. Caddy automatically gets and renews TLS certificates so you can use HTTPS.
  4. DDNS-Updater is a handy tool to automate dynamic DNS updates. This is especially important if you are running a home server and your IP address isn't static.
  5. Duplicati is backup software that supports many cloud providers and automatically encrypts your data.

Prerequisites

  1. A server running Ubuntu Server 20.04. You can use an old computer, buy something second-hand from a business or individual, or a cheap cloud VPS (you can support development by signing up for UpCloud with using this referral link).
  2. SSH access to your server. Here is a nice guide to set up access using a key instead of a password.
  3. (Optional but recommended) A domain name and/or dynamic DNS account to access your services with with nice URLs.

Quick Start

  1. Select the Use this template button on Github.

    • Give the repository a name
    • Make the repository private so only you can see your files
  2. Clone the repo to your local machine

    git clone https://github.com/{username}/{reponame}.git

  3. Copy apps/ddns-updater/config-example.json to apps/ddns-updater/config.json and configure your subdomains (documentation here)

  4. Push your changes back to GitHub

    git add .
    git commit -m "configure dynamic dns"
    git push -u origin main
  5. ssh into your server

  6. Clone your repo and cd into the created directory

  7. Copy .env-example to .env and edit accordingly

    cp .env-example .env
    nano .env
  8. Edit scripts/backup.sh and update the path to your repository on the server and the backup path if necessary

  9. Run the init script to install the dependencies and launch the containers

    ./scripts/init.sh

Further Reading

Documentation is a work in progress, stay tuned for more documentation that will aim to explain every piece of the stack so that even a beginner can understand what's going on behind the scenes.

About

A template to get you started with your own self-hosted cloud

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages