From fa7901ea49f884b33697201d7167bd7f40233bd4 Mon Sep 17 00:00:00 2001 From: L4RM4ND <21357789+l4rm4nd@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:40:42 +0100 Subject: [PATCH] add yourls --- README.md | 1 + examples/yourls/README.md | 9 ++++++ examples/yourls/docker-compose.yml | 49 ++++++++++++++++++++++++++++++ examples/yourls/security.conf | 5 +++ 4 files changed, 64 insertions(+) create mode 100644 examples/yourls/README.md create mode 100644 examples/yourls/docker-compose.yml create mode 100644 examples/yourls/security.conf diff --git a/README.md b/README.md index 667163a..56b342d 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ docker compose up - [Transfer.sh](examples/transfer.sh) - Easy and fast file sharing from the command-line. - [Transfer.zip](examples/transfer.zip) - Transfer files securely and E2E encrypted (AES-256 GCM) between browsers using WebRTC Peer2peer. - [HedgeDoc](examples/hedgedoc) - HedgeDoc lets you create real-time collaborative markdown notes. +- [YOURLS](examples/yourls) - The de-facto standard self hosted URL shortener in PHP. ### Publishing, Writing, Blogging, Hosting - [Ghost](examples/ghost) - Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications. diff --git a/examples/yourls/README.md b/examples/yourls/README.md new file mode 100644 index 0000000..61216f6 --- /dev/null +++ b/examples/yourls/README.md @@ -0,0 +1,9 @@ +# References + +- https://github.com/YOURLS/YOURLS + +# Notes + +The provided `docker-compose.yml` file bind mounts a custom Apache `security.conf` into the container. + +This ensures that YOURL's Apache web server does not disclose its detailed version information. diff --git a/examples/yourls/docker-compose.yml b/examples/yourls/docker-compose.yml new file mode 100644 index 0000000..8da752f --- /dev/null +++ b/examples/yourls/docker-compose.yml @@ -0,0 +1,49 @@ +version: '3.1' + +services: + + yourls: + image: yourls:latest + container_name: yourls + restart: unless-stopped + ports: + - 8080:80 + expose: + - 80 + environment: + YOURLS_SITE: https://myyourls.example.com # please adjust to your domain + YOURLS_USER: yourls-admin # please adjust + YOURLS_PASS: very-secury-admin-password # please adjust + YOURLS_DB_HOST: mysql + YOURLS_DB_USER: yourls + YOURLS_DB_NAME: yourls + YOURLS_DB_PASS: very-secure-database-password # please adjust + volumes: + - ./security.conf:/etc/apache2/conf-enabled/security.conf:ro + #networks: + # - proxy + #labels: + # - traefik.enable=true + # - traefik.http.routers.yourls.rule=Host(`s.ptf.one`) + # - traefik.http.services.yourls.loadbalancer.server.port=80 + # - traefik.docker.network=proxy + # # Part for optional traefik middlewares + # - traefik.http.routers.CHANGEME.middlewares=local-ipwhitelist@file,authelia@docker + + mysql: + image: mysql:latest + container_name: yourls-db + restart: unless-stopped + environment: + MYSQL_DATABASE: yourls + MYSQL_USER: yourls + MYSQL_PASSWORD: very-secure-database-password # please adjust + MYSQL_ROOT_PASSWORD: very-secure-database-root-password # please adjust + volumes: + - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/yourls/mysql:/var/lib/mysql + #networks: + # - proxy + +#networks: +# proxy: +# external: true \ No newline at end of file diff --git a/examples/yourls/security.conf b/examples/yourls/security.conf new file mode 100644 index 0000000..baa0955 --- /dev/null +++ b/examples/yourls/security.conf @@ -0,0 +1,5 @@ +# bind mount this file into the yourls container +# overwrites '/etc/apache2/conf-enabled/security.conf' to prevent version disclosure + +ServerTokens Prod +ServerSignature Off