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