Intialize folders for all projects
This commit is contained in:
parent
45c541999d
commit
c9d6f21a63
33
docs/GITLAB.md
Normal file
33
docs/GITLAB.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Goal
|
||||||
|
Spin up a Git server with a greater feature set than Gitea.
|
||||||
|
Specifically, I want:
|
||||||
|
- Integrated CI/CD. I would prefer a platform that comes with a 1st party CI/CD solution, rather than plugging in a 3rd party solution.
|
||||||
|
- Container/image registry. Building a locally-hosted registry for images enables better caching.
|
||||||
|
- Enterprise-competitive platform. Getting experience with a platform that competes with other enterprise SCM solutions is more valuable than something designed for a smaller scale.
|
||||||
|
|
||||||
|
# Plan
|
||||||
|
1. Create the host mount points for the docker volumes: `mkdir -p ~/docker_data/gitlab/data ~/docker_data/gitlab/logs ~/docker_config/gitlab/config`
|
||||||
|
2. Import the default GitLab configuration from [the docs](https://docs.gitlab.com/ee/install/docker.html#install-gitlab-using-docker-compose).
|
||||||
|
3. Customize the compose file:
|
||||||
|
1. `hostname: gitlab.jafner.net`
|
||||||
|
2. change the `external_url` under the `GITLAB_OMNIBUS_CONFIG` env var to `https://gitlab.jafner.net`
|
||||||
|
3. Add the `gitlab_rails['gitlab_shell_ssh_port'] = 2229` configuration line under `GITLAB_OMNIBUS_CONFIG` with a new SSH port
|
||||||
|
4. Remove http and https port bindings. Move host SSH port binding to a higher port.
|
||||||
|
5. Change the volume bindings to match my conventions (`DOCKER_DATA` instead of `GITLAB_HOME`)
|
||||||
|
6. Change the docker compose version to `'3.3'`
|
||||||
|
7. Add Traefik labels to enable TLS.
|
||||||
|
4. Run the file and test.
|
||||||
|
5. Troubleshoot issues.
|
||||||
|
6. GOTO 4.
|
||||||
|
7. Import Gitea repos
|
||||||
|
8. Move Gitea from `git.jafner.net` to `gitea.jafner.net`
|
||||||
|
9. Update Homer with new service locations
|
||||||
|
|
||||||
|
|
||||||
|
===
|
||||||
|
|
||||||
|
# References
|
||||||
|
|
||||||
|
1. [GitLab Docker images](https://docs.gitlab.com/ee/install/docker.html)
|
||||||
|
2. [GitLab SaaS vs Self-hosted](https://about.gitlab.com/handbook/marketing/strategic-marketing/dot-com-vs-self-managed/)
|
||||||
|
3. [Digital Ocean: How to Setup GitLab on a Digital Ocean Droplet](https://www.digitalocean.com/community/tutorials/how-to-setup-gitlab-a-self-hosted-github)
|
0
gaming-vpn/README.md
Normal file
0
gaming-vpn/README.md
Normal file
0
jafner-chat/README.md
Normal file
0
jafner-chat/README.md
Normal file
20
jafner-tools/5etools/docker-compose.yml
Normal file
20
jafner-tools/5etools/docker-compose.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
5etools:
|
||||||
|
container_name: 5etools
|
||||||
|
image: jafner/5etools-docker
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./htdocs:/usr/local/apache2/htdocs
|
||||||
|
environment:
|
||||||
|
# using defaults
|
||||||
|
- IMG=false
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.5etools.rule=Host(`5e.jafner.tools`)
|
||||||
|
- traefik.http.routers.5etools.tls.certresolver=lets-encrypt
|
||||||
|
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
0
jafner-tools/README.md
Normal file
0
jafner-tools/README.md
Normal file
10
jafner-tools/joplin/.env
Normal file
10
jafner-tools/joplin/.env
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
DB_CLIENT=pg
|
||||||
|
POSTGRES_PASSWORD=postgres
|
||||||
|
POSTGRES_DATABASE=joplin
|
||||||
|
POSTGRES_DB=joplin
|
||||||
|
POSTGRES_USER=postgres
|
||||||
|
POSTGRES_PORT=5432
|
||||||
|
POSTGRES_HOST=joplin_db
|
||||||
|
|
||||||
|
APP_BASE_URL=https://joplin.jafner.tools
|
||||||
|
APP_PORT=22300
|
34
jafner-tools/joplin/docker-compose.yml
Normal file
34
jafner-tools/joplin/docker-compose.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
joplin:
|
||||||
|
image: joplin/server:2.6-beta
|
||||||
|
container_name: joplin
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
- joplin_db
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
- joplin
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.joplin.rule=Host(`joplin.jafner.tools`)
|
||||||
|
- traefik.http.routers.joplin.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.middlewares.joplin.headers.customrequestheaders.X-Forwarded-Proto = http
|
||||||
|
- traefik.http.services.joplin.loadbalancer.server.port=22300
|
||||||
|
- traefik.http.services.joplin.loadbalancer.passhostheader=true
|
||||||
|
joplin_db:
|
||||||
|
image: postgres:13.1
|
||||||
|
container_name: joplin_db
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- ./db:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- joplin
|
||||||
|
|
||||||
|
networks:
|
||||||
|
joplin:
|
||||||
|
web:
|
||||||
|
external: true
|
44
jafner-tools/traefik/acme.json
Normal file
44
jafner-tools/traefik/acme.json
Normal file
File diff suppressed because one or more lines are too long
18
jafner-tools/traefik/docker-compose.yml
Normal file
18
jafner-tools/traefik/docker-compose.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
container_name: traefik
|
||||||
|
image: traefik:latest
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
- ./traefik.toml:/traefik.toml
|
||||||
|
- ./acme.json:/acme.json
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
18
jafner-tools/traefik/traefik.toml
Normal file
18
jafner-tools/traefik/traefik.toml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[entryPoints]
|
||||||
|
[entryPoints.web]
|
||||||
|
address = ":80"
|
||||||
|
[entryPoints.web.http.redirections.entryPoint]
|
||||||
|
to = "websecure"
|
||||||
|
scheme = "https"
|
||||||
|
[entryPoints.websecure]
|
||||||
|
address = ":443"
|
||||||
|
|
||||||
|
[certificatesResolvers.lets-encrypt.acme]
|
||||||
|
email = "jafner425@gmail.com"
|
||||||
|
storage = "acme.json"
|
||||||
|
caServer = "https://acme-v02.api.letsencrypt.org/directory"
|
||||||
|
[certificatesResolvers.lets-encrypt.acme.tlsChallenge]
|
||||||
|
|
||||||
|
[providers.docker]
|
||||||
|
watch = true
|
||||||
|
network = "web"
|
16
jafner-tools/uptime-kuma/docker-compose.yml
Normal file
16
jafner-tools/uptime-kuma/docker-compose.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
version: '3.3'
|
||||||
|
services:
|
||||||
|
uptime-kuma:
|
||||||
|
image: louislam/uptime-kuma
|
||||||
|
container_name: uptime-kuma
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data:/app/data
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.uptime-kuma.rule=Host(`uptime.jafner.tools`)
|
||||||
|
- traefik.http.routers.uptime-kuma.tls.certresolver=lets-encrypt
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
16
jafner-tools/vaultwarden/docker-compose.yml
Normal file
16
jafner-tools/vaultwarden/docker-compose.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
vaultwarden:
|
||||||
|
image: vaultwarden/server:latest
|
||||||
|
container_name: vaultwarden
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- web
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.vaultwarden.rule=Host(`bitwarden.jafner.tools`)
|
||||||
|
- traefik.http.routers.vaultwarden.tls.certresolver=lets-encrypt
|
||||||
|
networks:
|
||||||
|
web:
|
||||||
|
external: true
|
0
nas/README.md
Normal file
0
nas/README.md
Normal file
0
router/README.md
Normal file
0
router/README.md
Normal file
0
seedbox/README.md
Normal file
0
seedbox/README.md
Normal file
Loading…
Reference in New Issue
Block a user