GithubHelp home page GithubHelp logo

jdenson / make-my-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tommoulard/make-my-server

0.0 1.0 0.0 550 KB

docker compose with traefik and lots of services

Home Page: https://tom.moulard.org

HTML 0.05% Ruby 98.86% Shell 1.09%

make-my-server's Introduction

Server configuration

Docker Discord

Setup

docker-compose ()
{
    docker-compose $(find -name 'docker-compose*.yml' -type f -printf '%p\t%d\n'  2>/dev/null | sort -n -k2 | cut -f 1 | awk '{print "-f "$0}') $@
}
SITE=tom.moulard.org docker-compose up -d

Now you have my own server configuration.

To be a little more consistent with the management, you can use a .env file and do:

cp .env.default .env

And edit the file to use the correct site URL.

The docker-compose function gather all docker-compose files in order to have the whole configuration in one place (see docker-compose config).

Tear down

docker-compose down

Services list

There should be only one service by folder: For example, le folder traefik/ contains all the necessary configuration to run the traefik service.

Thus each folder represent an available service.

The directory must follow the following architecture:

service/
├── conf
│   └── ...
├── data
│   └── ...
├── docker-compose.servicename.yml
├── logs
│   ├── access.log
│   └── error.log
└── README.md

If the service you are adding can use volumes:

  • data/, is where to store to service data
  • conf/, is where to store to service configuration
  • logs/, is where to store to service logs (others than Docker logs)

Feel free to do a Pull Request to add your ideas.

more ideas

Configuration

Don't forget to change:

  • db passwords (might not be needed since they are beyond the reverse proxy)
  • VPN secrets (if none provided, they are generated directly).

Configuration files are: docker-compose.yml, nginx.conf

To set the password:

echo "USERS=$(htpasswd -nB $USER)" >> .env

You can add a new set of credentials by editing the .env file like

USERS=toto:pass,tata:pass, ...

The .env.default is generated using this command:

grep '${' **/docker-compose.*.yml | sed "s/.*\${\(.*\)}.*/\1/g" | cut -d":" -f 1 | sort -u | sort | xargs -I % echo "%=" >> .env.default

For local developments

Edit the file /etc/hosts to provide the reverse proxy with good URLs.

For example, adding this in your /etc/hosts will allow to run and debug the Traefik service locally:

127.0.0.1   traefik.moulard.org

Scaling up

docker-compose scale nginx=2

Authors

Main author:

Gitlab helper:

Discord MusicBot/minecraft:

make-my-server's People

Contributors

tommoulard avatar nitra-mfs avatar sailreal avatar

Watchers

 avatar

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.