A collection of one-click setup scripts to easily self-host your favorite open-source projects using Docker, Nginx, and Let's Encrypt. Deploy with a single command!
Manually setting up self-hosted applications can be a chore. You have to configure the application, set up a database, manage a reverse proxy, and secure it with SSL certificates. deploit automates this entire process.
This repository provides simple Bash scripts that handle everything for you:
- Asks for your domain and email.
- Creates a
docker-compose.ymlfile for the application. - Generates an Nginx configuration as a reverse proxy.
- Uses Certbot to get a free SSL certificate from Let's Encrypt.
- Launches your project as a set of Docker containers.
The goal is to get you from a fresh server to a running, secure application in under a minute. π
- Simple & Fast: Deploy complex applications with a single shell script.
- Containerized: Uses Docker and Docker Compose for clean, isolated, and reproducible environments. π³
- Secure by Default: Automatically provisions and renews Let's Encrypt SSL certificates for HTTPS. π
- High-Performance: Uses Nginx as a powerful and efficient reverse proxy.
- Extensible: Easily add new scripts for any Docker-based application.
Before you begin, ensure you have the following:
- A server (VPS or dedicated) running a modern Linux distribution (like Ubuntu 22.04).
- A domain name (
example.com) with an A record pointing to your server's public IP address. - Root or
sudoaccess to the server.
Deploying an application is as simple as running one command.
- Clone the Repository
Clone this repository to your server:
git clone https://github.com/nikdelvin/deploit.git
cd deploit- Run the Setup Script
Navigate to the directory of the project you want to deploy and execute the setup.sh script with sudo.
The script will ask for necessary information, such as:
- Password for your current terminal user if you not a
rootuser - The domain name you want to use (e.g.
app.yourdomain.com). - An email address for Let's Encrypt SSL notifications.
cd directus
bash setup.sh -p password -d domain -e emailThe script will then configure Nginx, get your SSL certificate, and launch the application using Docker Compose. Once it's done, your application will be live and accessible via HTTPS!
This is a growing collection. Pull requests for new project scripts are welcome!
- Directus - The flexible backend for all your projects π° Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.
- N8N - Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Each project directory contains a setup.sh script that acts as the orchestrator.
Here's the typical workflow:
- User Input: The script prompts the user for a domain and email address.
- Configuration: It uses these variables to create two main configuration files from templates:
docker-compose.yml: Defines the application services, database, and networks.nginx.conf: An Nginx server block that reverse-proxies traffic from the domain to the application's Docker container.
- SSL Certificate: The script uses Dockerized Certbot to request a Let's Encrypt certificate for the specified domain, saving it in a shared volume.
- Deployment: Finally,
docker-compose up -dis called to pull the necessary images and start the application containers in the background.
This approach keeps each application and its configuration neatly isolated.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a script for a new application you'd like to add, please fork the repo and create a pull request.
Distributed under the MIT License. See LICENSE for more information.