mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-03-08 23:03:29 -05:00
nginx proxy manager configuration #17
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @TWART016 on GitHub (Oct 4, 2021).
Hi,
I have running a nginx proxy manager instance in docker.
Now I want to configure vikunja with nginx proxy manager.
The vikunja instance in available from the WAN. Just the login failed:
Network ErrorIn npm I set the domain name with
Scheme http
Forward Hostname / IP: 192.168.178.15
Forward Port: 10002
SSL Certificate
No Advanced configuration
docker-compose von vikunja:
Does anyone have a proxy configuration for npm?
@kolaente commented on GitHub (Oct 5, 2021):
Not sure about nginx proxy manager, but have you seen the nginx reverse proxy example in the docs?
@TWART016 commented on GitHub (Oct 5, 2021):
I know this example. But in nginx proxy manager it looks a bit different.
In this issue there is a similar problem.
https://github.com/go-vikunja/api/issues/2#issuecomment-878383991
This is the config for the host
@kolaente commented on GitHub (Oct 5, 2021):
So the file at conf.d/include/proxy.conf contains the proxy config adapted from the docs? Where do you proxy the api requests? If all is set up correctly, you should be able to reach /api/v1/info through the proxy - on the same domain/ip +port as the frontend.
Or you could just continue to expose the api ports and use the api directly, but that kind of defeats the purpose of a proxy.
I'm not sure if I can help you here, while I know my way around nginx I don't know how the nginx proxy manager is different. You might want to ask in the forum, someone else might be able to help you there.
@TWART016 commented on GitHub (Oct 5, 2021):
I created a topic in the forum
https://community.vikunja.io/t/nginx-proxy-manager-configuration/385
This is the configuration of npm. It is automatic stored in the volume /data/nginx/proxy_host.
As you can see in the docker-compose https://github.com/go-vikunja/vikunja/issues/206 the api is available with port 3456.
@TWART016 commented on GitHub (Oct 26, 2021):
Hi @kolaente
which of these strings are variables? Do I need to replace frontend to the IP and api to IP:Port?
EDIT: listen to 80 or the port (10002) defined in the docker-compose?
EDIT2: On the login page of the public domain I see this line. Is this correct?
Sign in to your Vikunja account on 192.168.178.15:3456NPM is running on a different stack than vikunja
@kolaente commented on GitHub (Oct 26, 2021):
If you did not change the names of the containers or
VIKUNJA_SERVICE_INTERFACEyou don't need to change anything.Does it work?
@TWART016 commented on GitHub (Oct 26, 2021):
Is it a problem that vikunja and NPM is not in the same docker network? I always define the IP:Port and not the internal names of the containers.
The login still fails.
Console:
user-settings.89ce70d7.js:10 Mixed Content: The page at 'https://MYDOMAIN/login' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://192.168.178.15:3456/api/v1/login'. This request has been blocked; the content must be served over HTTPS.EDIT: issue on NPM
https://github.com/jc21/nginx-proxy-manager/discussions/1522
@kolaente commented on GitHub (Oct 27, 2021):
If the nginx config you showed is the one of the proxy container like in the examples it should be fine.
The console message you posted tells you everything you need to know: The API URL you configured at the frontend container should be https.
On the other hand, since you are now using a proxy you should be fine to remove it all together as long as you're accessing everything only through that proxy.
@TWART016 commented on GitHub (Oct 27, 2021):
This is my nginx config now
I set the parameter in the compose
VIKUNJA_API_URL: http://192.168.178.15:3456/api/v1/If I change that to https I get the error:
Remove the
VIKUNJA_API_URLin the docker-compose?@kolaente commented on GitHub (Oct 27, 2021):
Did you try in a private tab after restarting the container?
The error seems to indicate it is still using the http URL.
Yeah exactly.
@TWART016 commented on GitHub (Oct 31, 2021):
I removed the line from the docker-compose. Now I can login and there is no error with the public domain.
If I open the interal IP:Port I cannot login because the sign in account is
Sign in to your Vikunja account on 192.168.178.15:10002and notSign in to your Vikunja account on 192.168.178.15:3456.it is not possible to use a local login in parallel?
@kolaente commented on GitHub (Oct 31, 2021):
It should be possible but you will probably need to manually change the ip address in Vikunja's frontend.
@TWART016 commented on GitHub (Oct 31, 2021):
Ok thanks. For the end user this is not ideal but it works.
@TheBig-O commented on GitHub (Dec 15, 2021):
So, I had the same issue and sorted out a viable solution for using NGINX Proxy Manager with a Docker install of Vikunja. I've tried to detail the method here: https://github.com/TheBig-O/Vikunja-NGINX-Proxy-Manager
@kolaente commented on GitHub (Dec 15, 2021):
@TheBig-O That looks great! Do you want to submit a PR to add this to the docs?
@TheBig-O commented on GitHub (Dec 15, 2021):
@kolaente, I want to try one more thing tonight to see if I can streamline this option a bit. If it works, I'll submit that. If not, I'll go with the posted recommendation. Glad this helped.
@TheBig-O commented on GitHub (Dec 17, 2021):
Submitted a PR. Hopefully, the revised and shortened wording is still clear.
@DrProphet0 commented on GitHub (Dec 24, 2021):
Hi,
so I tried following the new guide https://github.com/TheBig-O/Vikunja-NGINX-Proxy-Manager but I kept failing, after much trial and error I figured a way to do it from the UI.
First to get it up and running I used docker compose
I like to put everything in a custom docker network so I don't have ports exposed, if you don't mind you will have to uncomment them
went on to create a docker-compose.yml file and running
docker-compose up -dAfter it has spun up the containers it assigns them automatically a network in my case vikunja_default
For this setup to work you must assign the containers on the same network your NPM is
If you have ports exposed in the yaml you don't have to.
For example I have my npm running on npm_default
To assign my containers I execute
docker network connect vikunja_api_1 npm_defaultdocker network connect vikunja_frontend_1 npm_defaultYou don't have to assign the DB container
Running a command to check that everything is on the same network
docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' | sed 's#^/##';So in this case
vikunja_api_1 has 192.168.0.23
vikunja_frontend_1 has 192.168.0.22
nginx proxy manager 192.168.0.2
Just make sure to note that these IP addresses will be different on your system just try to find them following the above command
Now for the fun part
Let's go to npm
Click to Add a Proxy Host
Then fill in the form
Then we move to the next tab Custom Locations and we will add a new location
We will fill the form
~* ^/(api|dav|\.well-known)/We will click the cog
and add last line
client_max_body_size 20M;exactly as in the original nginx setup
We can finally request a new SSL Certificate and Save our configuration!
That's it we did it!
Time to have fun!
Hope this helps someone <3
@kolaente commented on GitHub (Dec 25, 2021):
@DrProphet0 Nice guide! One thing I'd like to add is you may want to use the docker container host names instead of the IP - within the same docker network you can access containers using their host names. IPs can change, host names usually don't. You can figure out what host name the container have with
docker inspect <container name>(usually the host name is the same as the container name).@TWART016 Given there's now multiple guides here in this issue and in the docs, I'm going to close this issue now. Feel free to ping if you have any other issues.
@TheBig-O commented on GitHub (Jan 6, 2022):
@kolaente, I had a NGINX Proxy Manager meltdown for the proxy host I used in my PR. When I recreated, I used @DrProphet0 guide and it worked perfectly. As his is much easier, I would list his in your official documentation.
@DrProphet0 Thanks for the tip. I knew there had to be a way to do this from custom locations, but couldn't sort it out.
@kolaente commented on GitHub (Jan 6, 2022):
@DrProphet0 would you be open to send a PR to the docs?
@DrProphet0 commented on GitHub (Jan 6, 2022):
Hi yes, I submitted a PR!
@deanord commented on GitHub (Feb 9, 2022):
Thank you for this, however, it doesn't work if nginx proxy manager and vikunja are on separate networks. It's more common to have your proxy on one server and your services on other. I've tried everything above and still get the "Network Error" at login.
@Shahin-rmz commented on GitHub (Apr 8, 2022):
@DrProphet0 thanks for your complete explanation.
I have followed the guide step by step, but at the end got 502 Error.
any clue how can I resolve the issue?
PS. without Nginx Proxy manager front end works fine.
API has problem, which is ok because they can't connect.
Thanks
@Jemberg commented on GitHub (Dec 30, 2022):
For anyone still having issues with this after following the solution by DrProphet0, there is a simple solution using docker networks and editing the proxy setup in NPM which is described in the Reddit article linked below:
https://www.reddit.com/r/selfhosted/comments/xovuh6/setting_up_nginx_proxy_manager_with_vikunja/
@kingfungdesign commented on GitHub (Oct 8, 2023):
I find the steps from @TheBig-O's and @DrProphet0's guide still quite confusing and wasn't able to get them to work with reverse proxy and HTTPS. (couldn't get pass Network Error on HTTPS) @Jemberg's link also didn't quite make sense to me who has little experience with docker network. With more digging and more trial and error, I actually found even easier and more straight forward steps to properly setup Vikunja with Nginx Proxy Manager and HTTPS.
I am using a blank Ubuntu server, and of course having docker, docker-compose and NPM already setup. Following https://vikunja.io/docs/docker-walkthrough/, you should be able to get Vikunja to work via HTTP connection to your server ip.
From there, all you have to do is adjust the following things:
In docker-compose.yml
api
change VIKUNJA_SERVICE_FRONTENDURL to your desired domain
expose port 3456 on host
frontend
add VIKUNJA_API_URL to environment
proxy
change ports
In your DNS provider
Add two
Arecord that points to your server ip. I personally use Cloudflare. You are of course free to change them to whatever domain/subdomain you desire but they should be different.vikunjafor accessing the frontendapifor accessing the api(setting is different for different DNS provider, the end result should be
vikunja.your-domain.comandapi.your-domain.comrespectively)In Nginx Proxy Manager
Add two Proxy Host, and you don't have to add anything extra from @DrProphet0's comment
You can of course set SSL however you want. Your HTTPS frontend should be able to reach the api after these adjustments.
My docker-compose.yml if anyone is interested:
https://getupnote.com/share/notes/1wu7ZeFfPhQcdhDFi6UL7l32Vyt2/7d2039d1-d246-4966-8dff-867d7dfa4724
Inspiration from:
https://www.youtube.com/watch?v=DqyqDWpEvKI
https://community.vikunja.io/t/synology-vikunja-working-locally-but-not-via-proxy/536
@kolaente commented on GitHub (Oct 10, 2023):
@kingfungdesign great tutorial, do you want to send a PR to add it to the docs? (include at https://kolaente.dev/vikunja/api/src/branch/main/docs/content/doc/setup/reverse-proxies.md#nginx-proxy-manager-npm)
@kingfungdesign commented on GitHub (Oct 16, 2023):
Couldn't get the account to work. Here's the file.
https://send.kingz.dev/s/M0MTM5NAG948FEW
@kolaente commented on GitHub (Oct 17, 2023):
@kingfungdesign Thanks, now integrated!