diff --git a/docs/faq.md b/docs/faq.md
index a9b0bdc5..b09ff43c 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -18,6 +18,17 @@ Open Tandoor, open the menu behind the three vertical dots at the top right, sel
#### Microsoft Edge
Open Tandoor, open the menu behind the three horizontal dots at the top right, select `Apps > Install Tandoor Recipes`
+## Why is Tandoor not working correctly?
+If you just set up your Tandoor instance and you're having issues like...
+
+- Links not working
+- CSRF errors
+- CORS errors
+- No recipes are loading
+
+... then make sure, that you have set [all required headers](install/docker.md#required-headers) in your reverse proxy correctly.
+If that doesn't fix it, you can also refer to the appropriate sub section in the [reverse proxy documentation](install/docker.md#reverse-proxy) and verify your general webserver configuration.
+
## Why am I getting CSRF Errors?
If you are getting CSRF Errors this is most likely due to a reverse proxy not passing the correct headers.
@@ -34,6 +45,10 @@ The other common issue is that the recommended nginx container is removed from t
If removed, the nginx webserver needs to be replaced by something else that servers the /mediafiles/ directory or
`GUNICORN_MEDIA` needs to be enabled to allow media serving by the application container itself.
+## Why is Tandoor not working on my Raspberry Pi?
+
+Please refer to [here](install/docker.md#setup-issues-on-raspberry-pi).
+
## How can I create users?
To create a new user click on your name (top right corner) and select system. There click on invite links and create a new invite link.
diff --git a/docs/install/docker.md b/docs/install/docker.md
index 553939f2..233e05a6 100644
--- a/docs/install/docker.md
+++ b/docs/install/docker.md
@@ -102,7 +102,7 @@ wget https://raw.githubusercontent.com/vabene1111/recipes/develop/docs/install/d
!!!note
Don't forget to [download and configure](#docker-compose) your ```.env``` file!
-#### **nginx-proxy**
+#### **jwilder's Nginx-proxy**
This is a docker compose example using [jwilder's nginx reverse proxy](https://github.com/jwilder/docker-gen)
in combination with [jrcs's letsencrypt companion](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion/).
@@ -152,6 +152,102 @@ Please refer to the [appropriate documentation](https://github.com/linuxserver/d
For step-by-step instructions to set this up from scratch, see [this example](swag.md).
+#### **Pure Nginx**
+
+If you have Nginx installed locally on your host system without using any third party integration like Swag or similar, this is for you.
+
+You can use the Docker-Compose file from [Plain](#plain).
+!!!warning "Adjust Docker-Compose file"
+ Replace `80:80` with `PORT:80` with PORT being your desired outward-facing port.
+ In the nginx config example below, 8080 is used.
+
+An example configuration with LetsEncrypt to get you started can be seen below.
+Please note, that since every setup is different, you might need to adjust some things.
+
+!!!warning "Placeholders"
+ Don't forget to replace the domain and port.
+
+```nginx
+server {
+ if ($host = recipes.mydomain.tld) { # replace domain
+ return 301 https://$host$request_uri;
+ }
+
+ server_name recipes.mydomain.tld; # replace domain
+ listen 80;
+ return 404;
+}
+server {
+ server_name recipes.mydomain.tld; # replace domain
+ listen 443 ssl;
+
+ ssl_certificate /etc/letsencrypt/live/recipes.mydomain.tld/fullchain.pem; # replace domain
+ ssl_certificate_key /etc/letsencrypt/live/recipes.mydomain.tld/privkey.pem; # replace domain
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+ location / {
+ proxy_set_header Host $http_host; # try $host instead if this doesn't work
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_pass http://127.0.0.1:8080; # replace port
+ proxy_redirect http://127.0.0.1:8080 https://recipes.domain.tld; # replace port and domain
+ }
+}
+```
+
+!!!note
+ Don't forget to [download and configure](#docker-compose) your ```.env``` file!
+
+#### **Apache**
+
+You can use the Docker-Compose file from [Plain](#plain).
+!!!warning "Adjust Docker-Compose file"
+ Replace `80:80` with `PORT:80` with PORT being your desired outward-facing port.
+ In the Apache config example below, 8080 is used.
+
+If you use e.g. LetsEncrypt for SSL encryption, you can use the example configuration from [solaris7590](https://github.com/TandoorRecipes/recipes/issues/1312#issuecomment-1020034375) below.
+
+!!!warning "Placeholders"
+ Don't forget to replace the domain and port.
+
+```apache
+
+
+ ServerAdmin webmaster@mydomain.de # replace domain
+ ServerName mydomain.de # replace domain
+
+ Redirect permanent / https://mydomain.de/ # replace domain
+
+
+
+ ServerAdmin webmaster@mydomain.de # replace domain
+ ServerName mydomain.de # replace domain
+
+ SSLEngine on
+
+ RequestHeader set X-Forwarded-Proto "https"
+ Header always set Access-Control-Allow-Origin "*"
+
+ ProxyPreserveHost On
+ ProxyRequests Off
+ ProxyPass / http://localhost:8080/ # replace port
+ ProxyPassReverse / http://localhost:8080/ # replace port
+
+ SSLCertificateFile /etc/letsencrypt/live/mydomain.de/fullchain.pem # replace domain/path
+ SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.de/privkey.pem # replace domain/path
+ Include /etc/letsencrypt/options-ssl-apache.conf
+
+ ErrorLog ${APACHE_LOG_DIR}/recipes_error.log
+ CustomLog ${APACHE_LOG_DIR}/recipes_access.log combined
+
+
+```
+
+If you're having issues with the example configuration above, you can try [beedaddy](https://github.com/TandoorRecipes/recipes/issues/1312#issuecomment-1015252663)'s example config.
+
+!!!note
+ Don't forget to [download and configure](#docker-compose) your ```.env``` file!
+
#### **Others**
If you use none of the above mentioned reverse proxies or want to use an existing one on your host machine (like a local nginx or Caddy), simply use the [Plain](#plain) setup above and change the outbound port to one of your liking.
@@ -213,3 +309,42 @@ configuration files for all user generated data (e.g. Postgresql and media files
You can move everything to volumes if you prefer it this way, **but you cannot convert the nginx config file to a bind
mount.**
If you do so you will have to manually create the nginx config file and restart the container once after creating it.
+
+### **Required Headers**
+
+Please be sure to supply all required headers in your nginx/Apache/Caddy/... configuration!
+
+nginx:
+```nginx
+location / {
+ proxy_set_header Host $http_host; # try $host instead if this doesn't work
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_pass http://127.0.0.1:8080; # replace port
+ proxy_redirect http://127.0.0.1:8080 https://recipes.domain.tld; # replace port and domain
+}
+```
+
+Apache:
+```apache
+RequestHeader set X-Forwarded-Proto "https"
+Header always set Access-Control-Allow-Origin "*"
+
+ProxyPreserveHost On
+ProxyRequests Off
+ProxyPass / http://localhost:8080/ # replace port
+ProxyPassReverse / http://localhost:8080/ # replace port
+```
+
+### **Setup issues on Raspberry Pi**
+
+!!!info
+ Always wait at least 2-3 minutes after the very first start, since migrations will take some time!
+
+If you're having issues with installing Tandoor on your Raspberry Pi or similar device,
+follow these instructions:
+
+- Stop all Tandoor containers (`docker-compose down`)
+- Delete local database folder (usually 'postgresql' in the same folder as your 'docker-compose.yml' file)
+- Start Tandoor containers again (`docker-compose up -d`)
+- Wait for at least 2-3 minutes and then check if everything is working now (migrations can take quite some time!)
+- If not, check logs of the web_recipes container with `docker logs ` and make sure that all migrations are indeed already done
\ No newline at end of file