Self-Hosting-Guide

所属分类:GPT/ChatGPT
开发工具:Dockerfile
文件大小:167KB
下载次数:0
上传日期:2023-04-23 08:44:06
上 传 者sh-1993
说明:  自助托管指南。了解您自己或您的组织本地托管(内部部署和专用网络服务器)和管理软件应用程序的所有信息。包括云、WireGuard、自动化、家庭助理和网络。
(Self-Hosting Guide. Learn all about locally hosting (on premises & private web servers) and managing software applications by yourself or your organization. Including Cloud, WireGuard, Automation, Home Assistant, and Networking. ,)

文件列表:
CONTRIBUTING.md (654, 2023-04-29)
Getting Started with Self-Hosting.dockerfile (1013, 2023-04-29)


Self Hosting Guide

followers #### A guide for getting started with Self Hosting devices including software and hardware that will make you a better and more efficient Self Hosting. **Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).** **Note 2: This guide will constantly be updated with new info as becomes available and please feel to make an [issue](https://github.com/mikeroyal/Self-Hosting-Guide/issues) if you think something should be added.**


# Table of Contents 1. [Getting Started with Self-Hosting](https://github.com/mikeroyal/Self-Hosting-Guide#getting-started-with-self-hosting) - [Tools for Self-Hosting](https://github.com/mikeroyal/Self-Hosting-Guide#tools-for-self-hosting) * [Containers](https://github.com/mikeroyal/Self-Hosting-Guide#containers) * [CI/CD](https://github.com/mikeroyal/Self-Hosting-Guide#cicd) * [Development](https://github.com/mikeroyal/Self-Hosting-Guide#development) * [Web servers](#web-servers) * [ChatGPT Chatbots](#chatgpt) * [Automation](#automation) * [Configuration Management](#Configuration-Management) * [Cloud Storage](#cloud-storage) * [Cloud](https://github.com/mikeroyal/Self-Hosting-Guide#Cloud) * [Linode](#Linode) * [Nextcloud](#Nextcloud) * [DigitalOcean](#DigitalOcean) * [MinIO Object Storage](#MinIO-Object-Storage) * [Databases](#Databases) - [SQL](#SQL) - [NoSQL](#NoSQL) * [Remote Access](https://github.com/mikeroyal/Self-Hosting-Guide#Remote-Access) * [Virtualization](https://github.com/mikeroyal/Self-Hosting-Guide#Virtualization) * [Password Management](https://github.com/mikeroyal/Self-Hosting-Guide#password-management) * [VPN](#***) * [LDAP(Lightweight Directory Access Protocol)](#ldap) * [Log Management](#log-management) * [DNS](#dns) * [Network Tools](https://github.com/mikeroyal/Self-Hosting-Guide#network-tools) * [Service Discovery](#service-discovery) * [Security](#security) * [Troubleshooting](#troubleshooting) * [Monitoring](https://github.com/mikeroyal/Self-Hosting-Guide#monitoring) * [Dashboards](#Dashboards) * [Analytics](#Analytics) * [Search](#Search) * [Notifications](#Notifications) * [RSS](#RSS) * [Websites/Blogs](#WebsitesBlogs) * [Social](#Social) * [Communications](https://github.com/mikeroyal/Self-Hosting-Guide#communications) * [Business Management](https://github.com/mikeroyal/Self-Hosting-Guide#business-management) * [Collaboration & Synchronization](https://github.com/mikeroyal/Self-Hosting-Guide#Collaboration--Synchronization) * [Encryption](#Encryption) * [Backups](https://github.com/mikeroyal/Self-Hosting-Guide#backups) * [Snapshots Management/System Recovery](snapshots-managementsystem-recovery) * [Archiving](#archiving) * [Home Server](https://github.com/mikeroyal/Self-Hosting-Guide#home-server) * [Media Server](https://github.com/mikeroyal/Self-Hosting-Guide#media-server) * [Smart Home Automation](#Smart-Home-Automation) * [Voice Assistants](#Voice-Assistants) * [Video Surveillance](#Video-Surveillance) * [Text-To-Speech Synthesis (TTS)](#Text-To-Speech-Synthesis-TTS) * [Video and Audio Processing](#Video-and-Audio-Processing) * [Podcasting](#Podcasting) * [Audiobooks](#Audiobooks) * [Health](#Health) * [Maps](https://github.com/mikeroyal/Self-Hosting-Guide#maps) * [Bookmarks](#Bookmarks) * [Photos](https://github.com/mikeroyal/Self-Hosting-Guide#photos) * [Note-Taking](#Note-Taking) * [Wikis](#wikis) * [Gaming](https://github.com/mikeroyal/Self-Hosting-Guide#gaming) * [Foundations/Projects](https://github.com/mikeroyal/Self-Hosting-Guide#foundationsprojects) - [System Hardware](#System-Hardware) - [Operating Systems](#Operating-Systems) - [Storage](https://github.com/mikeroyal/Self-Hosting-Guide#storage) - [File systems](https://github.com/mikeroyal/Self-Hosting-Guide#file-systems) - [Books](https://github.com/mikeroyal/Self-Hosting-Guide#books) - [Podcasts](https://github.com/mikeroyal/Self-Hosting-Guide#podcasts) - [YouTube Channels](https://github.com/mikeroyal/Self-Hosting-Guide#youtube-channels) - [Tutorials & Resources](https://github.com/mikeroyal/Self-Hosting-Guide#tutorials--resources) - [Useful Subreddits to Follow](https://github.com/mikeroyal/Self-Hosting-Guide#subreddits) 2. [WireGuard](https://github.com/mikeroyal/Self-Hosting-Guide#wireguard) * [What is WireGuard?](#what-is-wireguard) * [What is Tailscale?](#what-is-tailscale) * [What is Netmaker?](#what-is-netmaker) * [WireGuard Tools](#wireguard-tools) * [Setting up WireGuard with PiVPN](#setting-up-wireguard-with-pi***) * [Setting up WireGuard on Unraid](#setting-up-wireguard-on-unraid) * [Setting up WireGuard on pfSense](#setting-up-wireguard-on-pfsense) * [Setting up WireGuard on OpenWRT](#setting-up-wireguard-on-openwrt) * [Setting up WireGuard on Home Assistant](#setting-up-wireguard-on-home-assistant) 3. [Nextcloud](https://github.com/mikeroyal/Self-Hosting-Guide#nextcloud) 4. [Raspberry Pi](https://github.com/mikeroyal/Self-Hosting-Guide#raspberry-pi) * [Models of Raspberry Pi boards](#models-of-raspberry-pi-boards) * [Raspberry Pi Learning Resources](#raspberry-pi-learning-resources) * [Raspberry Pi Operating Systems](#raspberry-pi-operating-systems) * [Raspberry Pi Tools](#raspberry-pi-tools) - [Getting Started with Home Assistant(HA)](#Home-Assistant) - [Getting Started with Homebridge](#Homebridge) - [Getting Started with ESPHome](#ESPHome) - [Turning Raspberry Pi into a Router](#Turning-Raspberry-Pi-into-a-Router) - [Setting up Watchdog Time (WDT) on Raspberry Pi](#setting-watchdog-timer-wdt-on-raspberry-pi) * [Raspberry Pi Upgrades](#raspberry-pi-upgrades) 5. [Grafana](https://github.com/mikeroyal/Self-Hosting-Guide#Grafana) 6. [Networking](https://github.com/mikeroyal/Self-Hosting-Guide#networking) 7. [Docker](https://github.com/mikeroyal/Self-Hosting-Guide#docker) 8. [Kubernetes](https://github.com/mikeroyal/Self-Hosting-Guide#kubernetes) 9. [Ansible](https://github.com/mikeroyal/Self-Hosting-Guide#ansible) 10. [Databases](https://github.com/mikeroyal/Self-Hosting-Guide#databases) 11. [Telco 5G](https://github.com/mikeroyal/Self-Hosting-Guide#telco-5g) 12. [Open Source Security](https://github.com/mikeroyal/Self-Hosting-Guide#open-source-security) 13. [Differential Privacy](https://github.com/mikeroyal/Self-Hosting-Guide#differential-privacy) 14. [Machine Learning](https://github.com/mikeroyal/Self-Hosting-Guide#machine-learning) 15. [IoT Protocols](https://github.com/mikeroyal/Self-Hosting-Guide#iot-protocols) 16. [Operating systems (OS)](https://github.com/mikeroyal/Self-Hosting-Guide#operating-systems) 17. [Middleware](https://github.com/mikeroyal/Self-Hosting-Guide#middleware) 18. [Node Flow editors](https://github.com/mikeroyal/Self-Hosting-Guide#node-flow-editors) 19. [Toolkits](https://github.com/mikeroyal/Self-Hosting-Guide#toolkits) 20. [Data visualization](https://github.com/mikeroyal/Self-Hosting-Guide#data-visualization) 21. [Search](https://github.com/mikeroyal/Self-Hosting-Guide#search) 22. [Hardware](https://github.com/mikeroyal/Self-Hosting-Guide#hardware) 23. [In-memory data grids](https://github.com/mikeroyal/Self-Hosting-Guide#in-memory-data-grids) 24. [Home automation](https://github.com/mikeroyal/Self-Hosting-Guide#home-automation) 25. [Robotics](https://github.com/mikeroyal/Self-Hosting-Guide#robotics) 26. [Mesh networks](https://github.com/mikeroyal/Self-Hosting-Guide#mesh-networks) 27. [Blockchain Development](https://github.com/mikeroyal/Self-Hosting-Guide#blockchain-development) 28. [Node.js Development](https://github.com/mikeroyal/Self-Hosting-Guide#nodejs-development) 29. [C/C++ Development](https://github.com/mikeroyal/Self-Hosting-Guide#cc-development) 30. [Java Development](https://github.com/mikeroyal/Self-Hosting-Guide#java-development) 31. [Python Development](https://github.com/mikeroyal/Self-Hosting-Guide#python-development) 32. [Rust Development](https://github.com/mikeroyal/Self-Hosting-Guide#rust-development) 33. [Swift Development](https://github.com/mikeroyal/Self-Hosting-Guide#swift-development) 34. [XML Development](https://github.com/mikeroyal/Self-Hosting-Guide#xml-development) # Getting Started with Self-Hosting [Back to the Top](https://github.com/mikeroyal/Self-Hosting-Guide#table-of-contents) [Self-Hosting](https://www.reddit.com/r/selfhosted/) is the practice of locally hosting(on premises & private web servers) and managing software applications by a person or organization instead of monthly subscriptions from [Software as a service (SaaS) providers](https://azure.microsoft.com/en-us/overview/what-is-saas/). Most self-hosted software can be installed using [Docker](https://en.wikipedia.org/wiki/Docker_(software)), a packaging system which allows software to bundle their configuration and dependencies and isolate them from your operating system. Software using docker can be installed using the command line or via graphical interfaces such as [Portainer](https://github.com/portainer/portainer). Software is installed with Docker by downloading an image file containing the application, then creating a copy that sets up its own dependencies and configuration within what is called a container. Without containers you would often need to install different versions of the same programming languages or tools to satisfy the dependencies for the software you want to use which can get complicated.


## Tools for Self-Hosting [Back to the Top](https://github.com/mikeroyal/Self-Hosting-Guide#table-of-contents) ### Containers [Back to the Top](#table-of-contents) **Container** is a standard unit of software that packages up code and all its dependencies(including CPU, memory, file storage, and network connections) so the application runs quickly and reliably from one computing environment to another. * [Application Container Security Guide | NIST (PDF)](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-190.pdf) **Container Image** is a lightweight, standalone, executable package of software that includes everything needed to run an application such as the code, runtime, system tools, system libraries, and settings. **Best places to get Container Images:** * [DockerHub Container Images](https://hub.docker.com/search?image_filter=official&q=&type=image) * [LinuxServer.io Container Images](https://fleet.linuxserver.io/) * [Quay Container Images](https://quay.io/search) [Docker Compose](https://github.com/docker/compose) is a tool that was developed to help define and share multi-container applications. With Compose, we can create a YAML file to define the services and with a single command, can spin everything up or tear it all down. [Kompose](https://kompose.io/) is a conversion tool for Docker Compose to container orchestrators such as [Kubernetes](https://kubernetes.io/) or [OpenShift](https://openshift.com/). [Containerd](https://containerd.io/) is a daemon that manages the complete container lifecycle of its host system, from image transfer and storage to container execution and supervision to low-level storage to network attachments and beyond. It is available for Linux and Windows. [Podman](https://podman.io/) is a daemonless, open source, Linux native tool designed to make it easy to find, run, build, share and deploy applications using Open Containers Initiative (OCI) Containers and Container Images. Podman provides a command line interface (CLI) familiar to anyone who has used the Docker Container Engine. [Lima](https://github.com/lima-vm/lima) is a tool that launches Linux virtual machines with automatic file sharing and port forwarding (similar to WSL2), and [containerd](https://containerd.io/). It's a great free and open-source alternative for [Docker Desktop](https://www.docker.com/products/docker-desktop). [Colima](https://github.com/abiosoft/colima) is a container runtimes on macOS (and Linux) with minimal setup. [Portainer Community Edition](https://github.com/portainer/portainer) is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. It is designed to be as simple to deploy as it is to use. [Yacht](https://github.com/SelfhostedPro/Yacht) is a container management UI with a focus on templates and 1-click deployments. [Kitematic](https://kitematic.com/) is a simple application for managing Docker containers on Mac, Linux and Windows letting you control your app containers from a graphical user interface (GUI). [Open Container Initiative](https://opencontainers.org/about/overview/) is an open governance structure for the express purpose of creating open industry standards around container formats and runtimes. [Buildah](https://buildah.io/) is a command line tool to build Open Container Initiative (OCI) images. It can be used with Docker, Podman, Kubernetes. [Red Hat Quay](https://quay.io/) is a project that Builds, Stores, and Distributes your Applications and Containers. [ctop](https://ctop.sh/) is a tool that provides a concise and condensed overview of real-time metrics for multiple containers as well as a [single container view](https://github.com/bcicen/ctop/blob/master/_docs/single.md) for inspecting a specific container. It comes with built-in support for Docker and runC; connectors for other container and cluster systems are planned for future releases. [runc](https://github.com/opencontainers/runc) is a CLI tool for spawning and running containers on Linux according to the OCI specification. [container-images](https://github.com/opencontainers/container-images) is a collection of container images used in CI across various opencontainers projects. [Clair](https://github.com/quay/clair) is an open source project for the static analysis of vulnerabilities in application containers (currently including [OCI](https://github.com/opencontainers/image-spec/blob/master/spec.md) and [Docker](https://github.com/docker/docker/blob/master/image/spec/v1.2.md)). [Shipwright](https://github.com/SelfhostedPro/Shipwright) is a WebUI to generate templates for Yacht, Portainer, Docker-Compose, and Unraid. [Autoheal](https://hub.docker.com/r/willfarrell/autoheal) monitors and restarts unhealthy docker containers. [Dozzle](https://hub.docker.com/r/amir20/dozzle) is a small lightweight application with a web based interface to monitor Docker logs. It doesn’t store any log files. It is for live monitoring of your container logs only. [Diun](https://crazymax.dev/diun/) is a tool that receive notifications when a Docker image is updated on a Docker registry. [WatchTower](https://hub.docker.com/r/containrrr/watchtower) is a process for automating Docker container base image updates. [Kasm Workspaces](https://www.kasmweb.com/) is a a highly configurable container streaming platform that enables you to stream and deliver containerized applications over the web. It offers tools that you can use to create desktop workspaces and provide access to virtual desktops to end users. It also ensures data loss prevention as well as secure and private web browsing. [Nginx Proxy](https://github.com/nginx-proxy/nginx-proxy) is an automation tool that sets up a container running nginx and [docker-gen](https://github.com/nginx-proxy/docker-gen). Docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped. [Visual Studio Code Dev Containers](https://github.com/microsoft/vscode-dev-containers) is an extension that lets you use a [Docker container](https://docker.com/) as a full-featured development environment. It allows you to open any folder inside (or mounted into) a container and take advantage of Visual Studio Code's full feature set. A [devcontainer.json file](https://code.visualstudio.com/docs/devcontainers/containers#_create-a-devcontainerjson-file) in your project tells VS Code how to access (or create) a development container with a well-defined tool and runtime stack. ### CI/CD [Back to the Top](#table-of-contents) * **CI/CD: Continuous Integration and Continuous Delivery** [Drone](https://drone.io/) is a Continuous Delivery system built on container technology. Drone uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers. [Travis CI](https://travis-ci.org/) is a hosted continuous integration service used to build and test software projects hosted at GitHub. [Circle CI](https://circleci.com/) is a continuous integration and continuous delivery platform that helps software teams work smarter, faster. [Buddy](https://buddy.works/) is a fully-featured DevOps platform with no learning curve that packs everything you need from a CI/CD tool. [Buildbot](https://www.buildbot.net/) is a continuous integration tool which automates the compile or test cycle required to validate changes to the project code base. It queues jobs, executes the jobs when the required resources are available, and reports the results. ### Development [Back to the Top](#table-of-contents) [Proxmox VE(Virtual Environment)](https://www.proxmox.com/en/proxmox-ve) is an open-source platform for enterprise virtualization. It has a built-in web interface that you can use to easily manage VMs and containers, software-defined storage and networking, high-availability clustering, and multiple out-of-the-box tools on a single solution. [Terraform provider plugin for Proxmox](https://github.com/Telmate/terraform-provider-proxmox) is a Terraform provider for the [Proxmox virtualization platform](https://pve.proxmox.com/pve-docs/) and exposes Terraform resources to provision QEMU VMs and LXC Containers. [OTF](https://github.com/leg100/otf) is an open source alternative to Terraform Enterprise. Includes SSO, team management, agents, and as many applies as you can throw hardware at. [APITable](https://apitable.com/) is an API-oriented low-code platform for building collaborative apps and better than all other Airtable open-source alternatives. [Code-Server](https://github.com/coder/code-server) is Visual Studio Code running on a remote server, accessible through the browser. [Turbopilot](https://github.com/ravenscroftj/turbopilot) is an open source large-language-model based code complet ... ...

近期下载者

相关文件


收藏者