Browse Source

Initial commit

Initial commit of code forked from https://github.com/UFHealth/ouroboros
develop
Chris Wiegman 1 year ago
commit
385207e5aa
No known key found for this signature in database GPG Key ID: 449E180845071036
8 changed files with 694 additions and 0 deletions
  1. +304
    -0
      .gitignore
  2. +59
    -0
      README.md
  3. +28
    -0
      conf/test.crt
  4. +26
    -0
      conf/test.csr
  5. +51
    -0
      conf/test.key
  6. +160
    -0
      conf/traefik.toml
  7. +7
    -0
      develop
  8. +59
    -0
      docker-compose.yml

+ 304
- 0
.gitignore View File

@ -0,0 +1,304 @@
# Created by .ignore support plugin (hsz.mobi)
### WordPress template
*.log
wp-config.php
wp-content/advanced-cache.php
wp-content/backup-db/
wp-content/backups/
wp-content/blogs.dir/
wp-content/cache/
wp-content/upgrade/
wp-content/uploads/
wp-content/mu-plugins/
wp-content/wp-cache-config.php
wp-content/plugins/hello.php
/.htaccess
/license.txt
/readme.html
/sitemap.xml
/sitemap.xml.gz
### VisualStudioCode template
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
### NetBeans template
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
### Linux template
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### Laravel template
vendor/
node_modules/
npm-debug.log
# Laravel 4 specific
bootstrap/compiled.php
app/storage/
# Laravel 5 & Lumen specific
public/storage
public/hot
storage/*.key
.env.*.php
.env.php
.env
Homestead.yaml
Homestead.json
# Rocketeer PHP task runner and deployment package. https://github.com/rocketeers/rocketeer
.rocketeer/
### Drupal template
# Ignore configuration files that may contain sensitive information.
sites/*/*settings*.php
sites/example.sites.php
# Ignore paths that contain generated content.
files/
sites/*/files
sites/*/private
sites/*/translations
# Ignore default text files
robots.txt
/CHANGELOG.txt
/COPYRIGHT.txt
/INSTALL*.txt
/LICENSE.txt
/MAINTAINERS.txt
/UPGRADE.txt
/README.txt
sites/README.txt
sites/all/libraries/README.txt
sites/all/modules/README.txt
sites/all/themes/README.txt
# Ignore everything but the "sites" folder ( for non core developer )
.htaccess
web.config
authorize.php
cron.php
index.php
install.php
update.php
xmlrpc.php
/includes
/misc
/modules
/profiles
/scripts
/themes
### Windows template
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
.idea/
# CMake
cmake-build-debug/
cmake-build-release/
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Typescript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# next.js build output
.next
### Eclipse template
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# PyDev specific (Python IDE for Eclipse)
*.pydevproject
# CDT-specific (C/C++ Development Tooling)
.cproject
# CDT- autotools
.autotools
# Java annotation processor (APT)
.factorypath
# PDT-specific (PHP Development Tools)
.buildpath
# sbteclipse plugin
.target
# Tern plugin
.tern-project
# TeXlipse plugin
.texlipse
# STS (Spring Tool Suite)
.springBeans
# Code Recommenders
.recommenders/
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
### macOS template
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

+ 59
- 0
README.md View File

@ -0,0 +1,59 @@
Ouroboros
=====
A tool to make Docker-based development easier across multiple projects.
# Features
Ouroboros provides a small proxy that will allow you to use multiple Docker projects at once. In addition, it provides both [MailCatcher](https://mailcatcher.me/) and [Webgrind](https://github.com/jokkedk/webgrind) to help troubleshoot email issues (and prevent erroneous emails from being sent to customers) as well as to help profile performance and other issues with your PHP applications. Finally, it also contains [Search-replace DB](https://github.com/interconnectit/Search-Replace-DB) to make working with databases even easier.
Think of it as a hub to allow you to develop in multiple projects on your machine at the same time (something that isn't really possible with Docker alone).
## Setting up DNS on Mac
For Mac we can use the `.test` top-level domain via [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) and [resolver](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/resolver.5.html).
```
brew install dnsmasq
echo 'address=/.test/127.0.0.1' > /usr/local/etc/dnsmasq.conf
sudo brew services start dnsmasq
```
Check to make sure you have the directory `/etc/resolver`. If not, create it `sudo mkdir /etc/resolver`. Then you can add your `.test` resolver:
```
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/test'
```
This will allow anything with a .test domain to point to the [Traefik](https://traefik.io/) proxy
# Usage
## Launching Ouroboros
Instead of `docker-compose up -d` use `./develop up -d`. This will create a network called `ouroboros_default` which will make linking from other projects easier.
## Accessing MailCatcher
To access MailCatcher simply point your browser to [http://mailcatcher.test]
## Accessing Webgrind
To access Webgrind simply point your browser to [http://webgrind.test]
## Accessing Search-Replace DB
To access Search-replace DB simply point your browser to [http://srdb.test]. Note you will need to make the database you want to work on accessible to the outside network before this will work.
## Access the Traefik dashboard
Traefik offers a great dashboard to help you visualize your sites. You can access it at [http://traefik.test:8080/dashboard/]
# Changelog
##### 1.1
* Add search-replce db
##### 1.0
* Initial Release

+ 28
- 0
conf/test.crt View File

@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEuDCCAqACCQDw7YwntYIiSTANBgkqhkiG9w0BAQsFADAeMQ0wCwYDVQQKDARB
Q01FMQ0wCwYDVQQDDAR0ZXN0MB4XDTE4MDUxNjE3NDY1NloXDTI4MDUxMzE3NDY1
NlowHjENMAsGA1UECgwEQUNNRTENMAsGA1UEAwwEdGVzdDCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBALzARQfixaLk9y1bTz4ECpESSk5lbd7WpMXC/Tg+
Klau2yhgCOQ3HkXuX5O2WsEcTGjKXRrZMdgGmJthouc90ZM0z/wednU1v7yfWoTG
7wP1BiuxqV0sV/2JhmGpRSBuPfk4UjA6YiXxLipZtiD5w0T7BW3TDnJhAZB3i3v+
E+Wu1CDEmAxsNmw7Z2KVtaaVzoN6MY2c7MsYkJRyF2cPX+Plgg5MnjEdkzIuIO8+
+sM0mRJoFyBhaHmfooM3yj2TCtZXSadxc2xezyoaafDb30ybVJqHZ/k3cQK3Ybyd
Dbq3BMDWh3zMkKvqswRbgKA/dJylS1IMxtHvXyNNXj2OUQiJjEs4KpXRcmwJdkdh
tzZWDbmYcR50Itv3OjEV0SmGkVd6UgQq5QcJsc+i3AQ1uYBcm7IT0cQgvLNdsH7J
3OBAOGxiDQrkPttvJK+O7duSsHTyl/2kEFPruRO4KyrgowI4vumGd70UtcOecMSl
E1fDuapYLRYLRVctOBOjIKF0ZbXuSR2Xd+VKvZXZ0YVTK5TrmDwHt0mLBLRrYpvI
0rbdv5MhxSncw++gPYdGS0TKGKLRXWkskuMyziz0Gez7xiYnhAMVU5FrXykdjkbM
Pz81BPhDsRsZgM4rBQ2aGjPLdDO/JMI4h6LoYVrsx/ymdRYWlivXaxg1Z+xWH1iU
ZFFHAgMBAAEwDQYJKoZIhvcNAQELBQADggIBACBeqCxikvF3R+Wn9SM1+mU8mSVh
HM8y+aFMNIdaHFSBO4hSHZGCkZcLGleyemAhHf2P8QmQTenh8cetjSzITEHCTEX+
PcisSh/YzE+Rm1Za26h5C9HXf+1AJv1JKe+sfchFI+m+fj3469vxejAWOs6G/OWX
xELXh4DuHDj99Oqo7k+lynGeoRr36pYo8O2PNxwbwb7YageL+Ksm/p4MjlqtFMyR
7yfw6ib1uaG3Rw9V2Of/7BnEjAQly+ICRuPQHiPjkBGYLp/rS+i3KBqN4y/LRuzY
4xQQVkdQFaVWnemHVS1hYNKNKyNH0217mY3O5x9hK/bTthEzJa58xNEEbLb4XWBx
UD3GU1ikFgZzHPn5lZqGJwJjRzWgBLyLSIJfIk9cZ6J0hM9wIe4Xij80yYGBt/uA
QRJo+4O2h8x+ZD3Rl3V8h5MSq+1veGFKgi6Tw/SuNtWInaazI/Znc1CREYp94I5H
60kxg7g1jmFwdlCOtsSDc3hWzI+QtJi1lk4Qirep/3rF75CWz051Ymezz8qgLqvS
1CTmWOkLGsSApoY54egzBxLymArjm6UY3bYOygSV65kqDZNEa9q0tOERTITmYiN3
31V+AXgePxLRwGUq6Vu3VeiAgO0ek7ydGX/81Y+d+czwfaYheUY+W58D8aazmXp0
mzPUqYiQnDSkzXMQ
-----END CERTIFICATE-----

+ 26
- 0
conf/test.csr View File

@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIEYzCCAksCAQAwHjENMAsGA1UECgwEQUNNRTENMAsGA1UEAwwEdGVzdDCCAiIw
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALzARQfixaLk9y1bTz4ECpESSk5l
bd7WpMXC/Tg+Klau2yhgCOQ3HkXuX5O2WsEcTGjKXRrZMdgGmJthouc90ZM0z/we
dnU1v7yfWoTG7wP1BiuxqV0sV/2JhmGpRSBuPfk4UjA6YiXxLipZtiD5w0T7BW3T
DnJhAZB3i3v+E+Wu1CDEmAxsNmw7Z2KVtaaVzoN6MY2c7MsYkJRyF2cPX+Plgg5M
njEdkzIuIO8++sM0mRJoFyBhaHmfooM3yj2TCtZXSadxc2xezyoaafDb30ybVJqH
Z/k3cQK3YbydDbq3BMDWh3zMkKvqswRbgKA/dJylS1IMxtHvXyNNXj2OUQiJjEs4
KpXRcmwJdkdhtzZWDbmYcR50Itv3OjEV0SmGkVd6UgQq5QcJsc+i3AQ1uYBcm7IT
0cQgvLNdsH7J3OBAOGxiDQrkPttvJK+O7duSsHTyl/2kEFPruRO4KyrgowI4vumG
d70UtcOecMSlE1fDuapYLRYLRVctOBOjIKF0ZbXuSR2Xd+VKvZXZ0YVTK5TrmDwH
t0mLBLRrYpvI0rbdv5MhxSncw++gPYdGS0TKGKLRXWkskuMyziz0Gez7xiYnhAMV
U5FrXykdjkbMPz81BPhDsRsZgM4rBQ2aGjPLdDO/JMI4h6LoYVrsx/ymdRYWlivX
axg1Z+xWH1iUZFFHAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAHNXYSkQZ/3oK
rsbRnwLjRRhVoOSgwmGYBBVMv/DsKxo0RLEuko6+FSFgf+KFxkHW//jCNkSe4fyS
GOu3jl3gbvcHCKJZKTJYVlkRc0O7QRoa4kyZp+xcTJ66ZMi+fzwYEGrLUgDmte6m
lJh3Yaow9CvMYQV0VcTzOPF1Tksg4XZzAXCiWGwlWjLMg7hvQ/w8z9J6aJH1efFl
NtwrCadppbcfRd8nxNN21qyzQug4SePNBdqs+/VKtG7mQ4KCoVKcKSIIxLef3QXR
ehxxymairnqtiZQuoqA7IxTVlcxK47SgLxgsTNMlhXrxHZhaRNTbt33d6oT3w3vi
A+L1m0U5YKsf+tjyTGEu8CuQJuFOqxNdYbR2UZEKj5nVjCuhHhyp72y3enF2Bmf7
l3gBfJ8yFgH9Ai4bT22o+niFher2L/u3va1h7j37JWtwaeRR3uRKdlv5gCz3C9In
1Rc60qTh+V71OFd1gO/LAXYObITflSfBpEpfF/GYXX6r/mnGAG4dlK2Vnv4rTOVr
vTmvwxYGUJbbMsYyQh4RGEmwacwnxyC7XSZqZd+nEReo9xG29iR18Syuy30J+8WM
UPeiO4c9dQO1ppaktTGfLCN+ujQYUm+VuA3l/cUQpZKNJsY3IUXTxe8hMwOn8DMZ
O0GTYbBttEMN3ScGRXd+7IBAbKlr28A=
-----END CERTIFICATE REQUEST-----

+ 51
- 0
conf/test.key View File

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

+ 160
- 0
conf/traefik.toml View File

@ -0,0 +1,160 @@
################################################################
# Global configuration
################################################################
# Enable debug mode
#
# Optional
# Default: false
#
# debug = true
# Log level
#
# Optional
# Default: "ERROR"
#
# logLevel = "DEBUG"
# Entrypoints to be used by frontends that do not specify any entrypoint.
# Each frontend can specify its own entrypoints.
#
# Optional
# Default: ["http"]
#
defaultEntryPoints = ["http", "https"]
################################################################
# Entrypoints configuration
################################################################
# Entrypoints definition
#
# Optional
# Default:
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/conf/test.crt"
keyFile = "/etc/traefik/conf/test.key"
################################################################
# Traefik logs configuration
################################################################
# Traefik logs
# Enabled by default and log to stdout
#
# Optional
#
# [traefikLog]
# Sets the filepath for the traefik log. If not specified, stdout will be used.
# Intermediate directories are created if necessary.
#
# Optional
# Default: os.Stdout
#
# filePath = "log/traefik.log"
# Format is either "json" or "common".
#
# Optional
# Default: "common"
#
# format = "common"
################################################################
# Access logs configuration
################################################################
# Enable access logs
# By default it will write to stdout and produce logs in the textual
# Common Log Format (CLF), extended with additional fields.
#
# Optional
#
# [accessLog]
# Sets the file path for the access log. If not specified, stdout will be used.
# Intermediate directories are created if necessary.
#
# Optional
# Default: os.Stdout
#
# filePath = "/path/to/log/log.txt"
# Format is either "json" or "common".
#
# Optional
# Default: "common"
#
# format = "common"
################################################################
# API and dashboard configuration
################################################################
# Enable API and dashboard
[api]
# Name of the related entry point
#
# Optional
# Default: "traefik"
#
# entryPoint = "traefik"
# Enabled Dashboard
#
# Optional
# Default: true
#
# dashboard = false
################################################################
# Ping configuration
################################################################
# Enable ping
[ping]
# Name of the related entry point
#
# Optional
# Default: "traefik"
#
# entryPoint = "traefik"
################################################################
# Docker configuration backend
################################################################
# Enable Docker configuration backend
[docker]
# Docker server endpoint. Can be a tcp or a unix socket endpoint.
#
# Required
# Default: "unix:///var/run/docker.sock"
#
# endpoint = "tcp://10.10.10.10:2375"
# Default domain used.
# Can be overridden by setting the "traefik.domain" label on a container.
#
# Optional
# Default: ""
#
domain = "test"
# Expose containers by default in traefik
#
# Optional
# Default: true
#
exposedByDefault = false

+ 7
- 0
develop View File

@ -0,0 +1,7 @@
#!/usr/bin/env bash
if [ $# -gt 0 ]; then
docker-compose -p Ouroboros "$@" # Specify Ouroboros as project name for predictable networking.
else
docker-compose ps
fi

+ 59
- 0
docker-compose.yml View File

@ -0,0 +1,59 @@
version: '3'
networks:
default:
driver: bridge
services:
srdb:
image: foxylion/search-replace-db
restart: always
depends_on:
- proxy
labels:
- 'traefik.frontend.rule=Host:srdb.test'
- 'traefik.domain=srdb.test'
- 'traefik.enable=true'
- 'traefik.docker.network=ouroboros_default'
- 'traefik.port=80'
- "traefik.frontend.redirect.entryPoint=http"
mailcatcher:
image: schickling/mailcatcher
restart: always
depends_on:
- proxy
environment:
MAILCATCHER_PORT: 1025
networks:
- default
labels:
- 'traefik.frontend.rule=Host:mailcatcher.test'
- 'traefik.domain=mailcatcher.test'
- 'traefik.enable=true'
- 'traefik.docker.network=ouroboros_default'
- 'traefik.port=1080'
- "traefik.frontend.redirect.entryPoint=http"
webgrind:
image: devgeniem/webgrind
ports:
- 80
labels:
- 'traefik.frontend.rule=Host:webgrind.test'
- 'traefik.domain=webgrind.test'
- 'traefik.enable=true'
- 'traefik.docker.network=ouroboros_default'
- 'traefik.port=80'
- "traefik.frontend.redirect.entryPoint=http"
proxy:
image: traefik
command: --api --docker
ports:
- '80:80'
- '443:443'
- '8080:8080'
networks:
- default
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./conf/traefik.toml:/etc/traefik/traefik.toml:ro
- ./conf:/etc/traefik/conf