Hassle-free minimal CI/CD for git repos for docker-based projects.
Features:
- zero configuration for repos by default
- automatic encrypted backup and recover via different providers including plain files or S3
- optional automatic TLS by Let's Encrypt
- optional automatic domain registration by supported providers
- minimal additional overhead
- multiple repos at once without ports conflicts
git-pipe does for you:
- Clone/fetch remote repository
- Detect packaging type
- Build package
- Restore backup (if applicable)
- Starts container(s)
- Creates proxy router
- (optional) Registers DNS
- (optional) Generates TLS certificates by Let's Encrypt HTTP-01 ACME
- (background) Regularly creates backup
- Starts from (1) in case something changes in repo
For installation from binaries:
git-pipe run https://github.com/kassambara/wordpress-docker-compose.git
Or for docker installation:
docker run -p 127.0.0.1:8080:80 -v /var/run/docker.sock:/var/run/docker.sock reddec/git-pipe run https://github.com/kassambara/wordpress-docker-compose.git
Where:
-p 127.0.0.1:8080:80
- docker instruction to expose port 8080 to localhost-v /var/run/docker.sock:/var/run/docker.sock
- expose docker control socket to git-pipehttps://github.com/kassambara/wordpress-docker-compose.git
- repo to pull and build (literally I picked just random one. Could be several repos)
Check usage section for details.
Wait a bit to finish building and go to
- http://wordpress.wordpress-docker-compose.localhost:8080 - wordpress app
- http://phpmyadmin.wordpress-docker-compose.localhost:8080 - for phpmyadmin app
Index page automatically generated for unknown domain. Ex: http://localhost:8080
linux
- high prioritydarwin
- (i-wish-i-had-a-mac priority) should work...windows
- (community support) maybe works, never tested but compiled
- zero-deps: replace OpenSSL, git, ssh and docker-compose to Go-native variants
- file config: support file-based per repo configurations
- authorization:
- by JWT
- OIDC
- support dynamic reconfiguration (over API/by file watch + signal)
- support GitHub-like webhooks
- lazy initialization (ie: bring up service on request only)
- path routing as alternative to domain-based