Giter Site home page Giter Site logo

old-adapdr / apps-server Goto Github PK

View Code? Open in Web Editor NEW
23.0 3.0 2.0 154 KB

A container based home development server, just copy over dist.* files, set the .env and get rolling!

Shell 47.66% Python 52.34%
traefik docker docker-compose drone-ci minio nextcloud portainer-ce n8n matomo docker-registry-v2

apps-server's Introduction

Home (development) Server

Open-source fueled apps, services and tools for a self hosting & development.

Overview

The templates are grouped into three types:

  • core: Required core services to deploy & manage other services
  • services: Single service templates
  • stacks: Multi-service templates

Core

  • gateway | traefik: Container native proxy & service gateway
  • admin | portainer: Container native monitoring and administration interface

Services:

  • vault | vaultwarden: Open-source rust implementation of the password manager bitwarden
  • storage | minio: Open-source object storage
  • automations | n8n: Open-source integration & flow based automation tool
  • registry: Docker container registry
  • ctc: Container Test Case to confirm deployment & letsencrypt certificate generation

Stacks:

  • ci | drone: Open-source CI/CD pipeline and deployment powered by community integrations
  • cloud | nextcloud: Open-source GCloud/Dropbox alternative
  • writeups | ghost: Open-source publication tool and wordpress alternative
  • analytics | matomo: Open-source GDPR compliant analytics platform

W.I.P.

  • deploy: A generalized way to auto-deploy new verified updates (Either via script alone or together with TerraForm)
  • backups: A generalized way to backup and manage the system
  • logs & metrics: A generalized way to view and manage logs (Prometheus)
  • security: A generalized way to scan the deployed VLANs and services for malicious activity. (TemplarBit?)

Setup

Requirements

  • Note all DOMAIN variables are without HTTP(S) prefix!

    • Valid domain: vault.hs.example.com
    • Invalid doman: https://vault.hs.example.com
  • DNS A record with a wildcard sub.domain.tld pointing towards the server

  • Domain & global storage .env variables are required for the gateway and letsencrypt to work

  • A server with at least 2 core CPU and 4GB of RAM

    • Note: Start-up may require more RAM or slow-down with only 2 cores/CPUs
    • Note: Varies depending on load, usage and number of services currently running
    • Note: Once deployed, all current services requires ~2.1GB of RAM

Configuration & Deployment

The gateway detects and auto-adds new services as they're deployed so it should be deployed first with either option!

Automatic deployment

  • New and improved auto-deploy to be added in the future =)

Manual deployment

  1. Copy dist.env and dist.docker-compose.yml files for core with your preferred configuration
  2. Pull and start core services with docker-compose up from the service directory and verify that they're running (with letsencrypt provided SSL certs)
  3. Copy dist.env and dist.docker-compose.yml files for your preferred service/stack setup
  4. Pull and start preferred services with docker-compose up -d from the serviec directory.

apps-server's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

apps-server's Issues

Add generic deployment alternative

There should be an alternative or option to auto-deploy to a generic VPS as a target. A good generic choice might be a DigitalOcean droplet?

This way it can be tested, used and otherwise utilized as open-source by other developers.

Fix deployment permissions error

image
Deployment overwrites permissions on the deploy.py file, the drone-service need to be updated to have rwx for the target folder

Add better setup instructions

Right now it's not necessarily clear or user-friendly to setup HS. This can be addressed by updating and extending the README.md documentation.

Rename

Repository should be renamed to better explain what it does and avoid over-abriviation.

Improved deployment options

Would be great to have improved deployment options included.

This can be implemented in several ways, but a good starting point may be:

  • Preset supplied by setup.py
  • Config file added for setup.py with a list of what to install
  • Users can tweak config.extension to add/remove/update various images

This would also allow for global settings to be used for shared environment variables (domain, storage, etc)

Add docker container registry to HS

A docker container registry should be added to the HS development environment. This way public containers can be kept to "release only" reducing the amount of time required to manage that pipeline & flow.

Set up HS board

Cards & automations needs to be configured for the HS board

Deploy

Needs to be deployed to the server

Auto-deployment updates

Auto-deployment needs to be tested and made (even more) generic to avoid blockers and issues with later additions.

In particular storage needs a new/rewritten solution to allow generic targets further down the line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.