====== Webhosting Commands ======
sudo chown -R www-data:www-data /var/www/html*
sudo find /var/www/html/ -type d -exec chmod 775 {} \;
sudo find /var/www/html/ -type f -exec chmod 664 {} \;
sudo find /var/www/html -type d -exec chmod g+s {} \;
sudo systemctl restart nginx
===== htpasswd =====
Generate Basic Auth Credentials
==== Installation ====
sudo apt update
sudp apt install htpasswd
==== Generate Credentials ====
:!: insecure default MD5
htpasswd -n testuser # generate cerdentials for user "werner" and display the results
# on standard output rather than updating a file
htpasswd -c ~/public_html/.htpasswd testuser # generate ".htpasswd" file and create credentials for user "werner"
htpasswd ~/public_html/.htpasswd testuser # create or modify credentials for user "werner" in ".htpasswd" file
:-) secure bcrypt
htpasswd -nBC 10 testuser
# -n Show ouput on stdout
# -B Use bcrypt encryption algorithm
# -C 10 Computing time used for the bcrypt algorithm (higher is more secure but slower, default: 5, valid: 4 to 17)
=== Traefik ===
**Don't forget to escape dollar signs ($ -> $$) in traefik docker compose files!**
use this command:
echo $(htpasswd -nB werner) | sed -e s/\\$/\\$\\$/g
in the docker compose file:
...
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik-prod"
- "traefik.http.services.nginx-web-prod.loadbalancer.server.port=8180"
- "traefik.http.routers.nginx-web-prod.middlewares=basicauth-prod"
- "traefik.http.middlewares.basicauth-prod.basicauth.users=werner:$$apr1$$3FS0FG.s$$rc0h/7C36ABYDS45XKEQ."
...