Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Readme: update #8

Merged
merged 2 commits into from
Oct 13, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 39 additions & 87 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,88 +12,39 @@ 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:
To be a little more consistent with the management, you can use a `.env` file
and do:
```bash
cp .env.default .env
```

and edit the file to use the correct site url.
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 (`docker-compose config`).
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
```bash
docker-compose down
```

## TODO
### New ideas
- [X] traefik
- [X] gitlab
- [X] CI/CD worker(s)
- [X] nextcloud
- [X] nginx
- [X] weechat
- [X] transmission
- [X] vpn
- [X] jupyter
- [ ] readthedoc / [DokuWiki](https://hub.docker.com/r/mprasil/dokuwiki)
- [X] pastebin
- [ ] image / screenshot hosting
- [ ] [hackmd](https://github.com/hackmdio/docker-hackmd) [main repo](https://github.com/hackmdio/codimd)
- [X] [prometheus](https://www.brianchristner.io/how-to-monitor-traefik-reverse-proxy-with-prometheus/) / [EFK](https://docs.fluentd.org/v0.12/articles/docker-logging-efk-compose) / [filebeat](https://medium.com/the-sysadmin/visualize-traefik-logs-in-kibana-c53fb2aac070) / ELK
- [ ] proxy
- [ ] [RSS agregator server](https://www.freshrss.org/)
- [ ] url shortener
- [ ] factorio server
- [ ] news group server
- [ ] vlc server
- [X] blog using [hugo](http://gohugo.io)
- [ ] MOOC
- [ ] Latex online editor
- [X] [Bazarr](https://hub.docker.com/r/linuxserver/bazarr) (subs), [lidarr](https://hub.docker.com/r/linuxserver/lidarr) (music), [sonarr](https://hub.docker.com/r/linuxserver/sonarr) (shows), [jackett](https://hub.docker.com/r/linuxserver/jackett) (interface)
- [X] Bitwarden

[more](https://github.com/Kickball/awesome-selfhosted)

### List
- [ ] which database ? maria / mysql / mongo / postgres
- [ ] gitlab postgresSQL / MySQL - MariaDB
- [ ] nextcloud postgresSQL / MySQL - MariaDB / Oracle
- [X] nginx.conf
- [ ] create a git repository auto in gitlab for // FIXME
- [ ] Create a Dockerfile for a mail server
- [X] reverse proxy with ssl
- [ ] multi files configuration
- [ ] Testing
- [X] traefik
- [X] gitlab
- [X] nextcloud
- [X] nginx
- [ ] weechat
- [X] transmission
- [X] vpn
- [X] jupyter
- [X] pastebin
- [X] ELK
- [ ] sharelatex / Overleaf
- [X] blog

### Configuration files
- [ ] have default configuration files
- [X] traefik
- [X] gitlab
- [X] gitlab runner
- [X] transmission
- [ ] pastebin
- [ ] nextcloud
- [X] nginx
- [X] ELK (WIP)
### 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.

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

[more ideas](https://github.com/awesome-selfhosted/awesome-selfhosted)

## Configuration
Don't forget to change db passwords. (migth not be needed since they are beyond
the reverse proxy).
Fill vpn secrets(if none provided, they are generated directly).
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:
Expand All @@ -106,33 +57,28 @@ You can add a new set of credentials by editing the .env file like
USERS=toto:pass,tata:pass, ...
```

### Scalling up
### 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:
```bash
docker-compose scale nginx=2
127.0.0.1 traefik.moulard.org
```

### Adress table
| Status | Address | port(s)|
|:--:|--|--|
| [X] | traefik.${SITE} | 80, 443 (redirect 80 to 443) |
| [X] | gitlab.${SITE} | 22, 80, 443 |
| [X] | cloud.${SITE} | 80, 443 |
| [X] | ${SITE} | 80, 443 |
| [ ] | mail.${SITE} | 25(recv mail), 465(ssl), 587(TLS), 143(IMAP), 993(IMAP), 110(POP3), 995(POP3) |
| [X] | torrent.${SITE} | 80, 443 (redirect 80 to 443) |
| [X] | vpn.${SITE} | 500, 4500 |
| [X] | jupiter.${SITE} | 80, 443 (redirect 80 to 443) |
| [X] | paste.${SITE} | 80, 443 (redirect 80 to 443) |
| [X] | video.${SITE} | 80, 443 (redirect 80 to 443) |
| [ ] | irc.${SITE} | ?? |
### Scaling up
```bash
docker-compose scale nginx=2
```

### Gitlab runner
#### Get the Registration Token
Find your runner registration token ($REGISTRATION_TOKEN) at `http://GITLAB_HOST/$PROJECT_GROUP/$PROJECT_NAME/settings/ci_cd`.
Find your runner registration token (\$REGISTRATION_TOKEN) at
`http://GITLAB_HOST/$PROJECT_GROUP/$PROJECT_NAME/settings/ci_cd`.

There is **two** way to register the runner:

##### Register via config file
##### Register via the configuration file
Register the Registration Token to have a Runner Token
```bash
curl -X POST 'http://gitlab.${SITE}/api/v4/runners' --form 'token=$REGISTRATION_TOKEN' --form 'description=The Best Runner'
Expand All @@ -153,6 +99,7 @@ docker-compose up -d runner
Steps:
- up the runner `docker-compose up -d runner`
- register the runner

```bash
docker-compose exec runner gitlab-runner register \
--non-interactive \
Expand All @@ -173,3 +120,8 @@ Main author:

Gitlab helper:
- [michel_k](mailto:thomas.michelot@epita.fr)

Discord MusicBot:
- [huvell_m](mailto:martin.huvelle@epita.fr),
see PR [#6](https://github.com/tomMoulard/make-my-server/pull/6)