Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dark Mode Support #707

Open
redtripleAAA opened this issue Nov 9, 2020 · 51 comments
Open

Dark Mode Support #707

redtripleAAA opened this issue Nov 9, 2020 · 51 comments

Comments

@redtripleAAA
Copy link

RFE for Dark Mode Support

@C-Fu
Copy link

C-Fu commented Dec 29, 2020

This would be awesome!

@vMeph

This comment has been minimized.

@WrDX
Copy link

WrDX commented Feb 17, 2021

It looks like Tabler supports it: https://preview.tabler.io/layout-dark.html

@jc21
Copy link
Member

jc21 commented Feb 17, 2021

And it indeed looks sexy. I'm rewriting the UI with react for version 3, which which be much easier to integrate a dark mode.

@jonasled
Copy link
Contributor

I've played a bit around with the SCSS and also implementing one without the tabler resources is not very difficult: https://gitlab.jonasled.de/jonasled/nginx-proxy-manager-dark/-/blob/master/frontend/scss/darkmode.scss

@TropicLegend
Copy link

Where can I change these files?

@root9191
Copy link

I've played a bit around with the SCSS and also implementing one without the tabler resources is not very difficult: https://gitlab.jonasled.de/jonasled/nginx-proxy-manager-dark/-/blob/master/frontend/scss/darkmode.scss

Hello, how Can i implent the Dark Mode in my Proxy Manager Version 2.9.7?

@FroggMaster
Copy link

FroggMaster commented Nov 27, 2021

I created a Dark Mode theme VIA CSS which can be easily applied VIA the Stylish Extension. Stylish will allow you to toggle the theme quickly if you so choose. In addition it will allow for you to make easy/live modifications if you'd like to change the theme to your preferences. I have heavily commented my CSS to give you some understanding of the areas I've changed.

You can find the Stylish theme that I created here:
https://userstyles.org/styles/220202/nginx-proxy-manager-dark-theme

You can also create a custom CSS then mount it within the NGINX Proxy Manager docker container. This I would consider to be a little bit more of an advanced method, but this would mean no matter where NGINX Proxy manager was accessed from it would display the custom theme; Unlike with the Stylish extension, where the extension must be installed for the theme to be visible. I'm honestly surprised there is no option within the GUI to provide custom CSS. Or instructions on simply mounting a CSS file within the container. Please note that the CSS for the Stylish theme I provided will only modify portions of the CSS I wanted to change. It is not a complete CSS for NGINX Proxy Manager and I would not recommend mounting it in your docker container.

NGINX Also allows for sub filters to be used when passing a webpage or server through it, which in turn can cause CSS to be loaded this way as well. If you were to pass NGINX Manager through itself, and apply a sub filter this would allow for modification of the CSS as well.

There are A LOT of ways themes/custom CSS could be implemented into this application and I would HIGHLY suggest it. Even if it's just VIA the ability to apply your own custom CSS overtop of the original CSS. User's will eventually create themes and there will be an immense variety of options. Until the develop opts to support this functionality though, I doubt we will see many themes developed for the application.

It's obvious that this is a sought after feature though. Within 24 hrs of me submitting my theme, there was thirteen separate user's whom had installed it. In such a short period of time, that screams to me others are deeply interested in a Dark Mode option.

@ItsNoted
Copy link

ItsNoted commented Dec 17, 2021

I created a Dark Mode theme VIA CSS [...]

Installing browser plugins is not an option for me.

@operinko
Copy link

I would love to see theme-park.dev support on nginx-proxy-manager, though that seems to imply requiring linuxserver.io builds

@FroggMaster
Copy link

FroggMaster commented Jan 3, 2022

I created a Dark Mode theme VIA CSS [...]

Installing browser plugins is not an option for me.

There are alternative suggestions in my post. Though, the most non-technical method would be to use an Extension.

  • Apply CSS VIA NGINX itself (You will need to reverse proxy NPM to do this)
  • Mount a new CSS file overtop of the existing CSS file VIA Docker

@root9191
Copy link

root9191 commented Jan 3, 2022

I created a Dark Mode theme VIA CSS [...]

Installing browser plugins is not an option for me.

There are alternative suggestions in my post. Though, the most non-technical method would be to use an Extension.

  • Apply CSS VIA NGINX itself (You will need to reverse proxy NPM to do this)

  • Mount a new CSS file overtop of the existing CSS file VIA Docker

Could you explain, how i can apply the CSS in Nginx? Do i need the Advanced Tab for this?

@Amoenus
Copy link

Amoenus commented Jan 18, 2022

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything
Dark Theme CSS
Comes with a dark scroll bar though ;)

@mellowism
Copy link

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything Dark Theme CSS Comes with a dark scroll bar though ;)

My Gravatar didn't like it, went all gray. Other than that it looks real nice!
image

@walkxcode
Copy link

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything Dark Theme CSS Comes with a dark scroll bar though ;)

How do I use this?

@Amoenus
Copy link

Amoenus commented Jan 19, 2022

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything Dark Theme CSS Comes with a dark scroll bar though ;)

How do I use this?

I just put it in Stylus since Stylish had some shady things going on that I don't care enough to remember.

@Amoenus
Copy link

Amoenus commented Jan 19, 2022

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything Dark Theme CSS Comes with a dark scroll bar though ;)

My Gravatar didn't like it, went all gray. Other than that it looks real nice! image

Interesting. Mine seems to show fine.
image

Just in case I've made it against the latest v2.9.15 (at the time of writing). So maybe check your version.

But this is getting out of topic, so comment on a gist if you need any help

@walkxcode
Copy link

Here's my attempt to create dark theme CSS, it's very chatty but should cover almost everything Dark Theme CSS Comes with a dark scroll bar though ;)

How do I use this?

I just put it in Stylus since Stylish had some shady things going on that I don't care enough to remember.

Alright

@root9191
Copy link

Is there a way to implement this custom.css via the Nginx Proxy Manager so every Device in the Network is affected?

@jonasled
Copy link
Contributor

Yes, you can add the stylesheet on the server, if you place the file in frontend/scss/ and add the import in the style.scss

@root9191
Copy link

can you explain that to me in a bit more detail?
so i need to a map the custom.css to the Container and then simply import the custom.css in the style.css or the main.css?

@kmanwar89
Copy link

Yes, you can add the stylesheet on the server, if you place the file in frontend/scss/ and add the import in the style.scss

Hi @jonasled - would you be able to provide some specific instructions on where these files can be found? Myself, and I'm sure others, are likely running nginx proxy manager via a docker container, so access to some of these core files may not be available.

Would I be correct in my (limited) understanding that we'd need to either:

  1. Execute a bash command inside the npm docker container and drop the files directly into the frontend/scss folder you mentioned or
  2. Make the relevant additions to the css files and re-compile the docker image?

I'm not sure what the best path forward here would be, but it sounds like many other people would like dark mode as well, so your help is appreciated!

@jonasled
Copy link
Contributor

jonasled commented Feb 2, 2022

Changing the configuration of a running container dosn't work. You have to take the sourcecode and then place the dark.scss in frontend => scss. Afterwards you have to add @import "darkmode"; to your style.scss (in the same directory)

Afterwards you have to build the container with the following script:

echo 'Setting Version'
sed -i "s/0.0.0/${BUILD_VERSION}/" frontend/package.json
sed -i "s/0.0.0/${BUILD_VERSION}/" backend/package.json

echo 'Building Frontend ...'
bash scripts/frontend-build

echo 'Checking Syntax ...'
docker run --rm -v "$(pwd)/backend:/app" -v "$(pwd)/global:/app/global" -w /app node:latest sh -c "yarn install && yarn eslint . && rm -rf node_modules"

echo 'Docker Build ...'
docker build --pull --no-cache --compress -t "nginx-proxy-manager-dark:latest" -f docker/Dockerfile --build-arg TARGETPLATFORM=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --build-arg BUILD_VERSION="${BUILD_VERSION}" --build-arg BUILD_COMMIT="${BUILD_COMMIT}" --build-arg BUILD_DATE="$(date '+%Y-%m-%d %T %Z')" .

@kmanwar89
Copy link

kmanwar89 commented Feb 4, 2022

Changing the configuration of a running container dosn't work. You have to take the sourcecode and then place the dark.scss in frontend => scss. Afterwards you have to add @import "darkmode"; to your style.scss (in the same directory)

Afterwards you have to build the container with the following script:

echo 'Setting Version'
sed -i "s/0.0.0/${BUILD_VERSION}/" frontend/package.json
sed -i "s/0.0.0/${BUILD_VERSION}/" backend/package.json

echo 'Building Frontend ...'
bash scripts/frontend-build

echo 'Checking Syntax ...'
docker run --rm -v "$(pwd)/backend:/app" -v "$(pwd)/global:/app/global" -w /app node:latest sh -c "yarn install && yarn eslint . && rm -rf node_modules"

echo 'Docker Build ...'
docker build --pull --no-cache --compress -t "nginx-proxy-manager-dark:latest" -f docker/Dockerfile --build-arg TARGETPLATFORM=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --build-arg BUILD_VERSION="${BUILD_VERSION}" --build-arg BUILD_COMMIT="${BUILD_COMMIT}" --build-arg BUILD_DATE="$(date '+%Y-%m-%d %T %Z')" .

Thanks for your help with this. If I understood your instructions correctly, then the first step would be to clone the repository for the dark mode, which would be located here.

From there, I executed both the frontend-build script and the docker run command you have listed. However, when running the final docker build command, I receive the following error:

The command '/bin/bash -o pipefail -c echo "fs.file-max = 65535" > /etc/sysctl.conf && apt-get update && apt-get install -y --no-install-recommends jq logrotate && apt-get clean && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

For reference, I'm running this on a fresh install of Ubuntu Server 21.10. Any ideas what may be causing this? It is not an error I've encountered previously.

Here is the full output:

kadar@shadowserve:~/snap/docker/nginx-proxy-manager-dark$ docker build --pull --no-cache --compress -t "nginx-proxy-manager-dark:latest" -f docker/Dockerfile --build-arg TARGETPLATFORM=linux/amd64 --build-arg BUILDPLATFORM=linux/amd64 --build-arg BUILD_VERSION="${BUILD_VERSION}" --build-arg BUILD_COMMIT="${BUILD_COMMIT}" --build-arg BUILD_DATE="$(date '+%Y-%m-%d %T %Z')" .
Sending build context to Docker daemon  92.51MB
Step 1/22 : FROM jc21/nginx-full:node
node: Pulling from jc21/nginx-full
Digest: sha256:50210acee3db8afa1143a9064b5fc2163bd82043531d105765ea79e338ff6a58
Status: Image is up to date for jc21/nginx-full:node
 ---> d7305a5ab702
Step 2/22 : ARG TARGETPLATFORM
 ---> Running in 30a0def89ec6
Removing intermediate container 30a0def89ec6
 ---> acf51dd780d9
Step 3/22 : ARG BUILD_VERSION
 ---> Running in 527616c44226
Removing intermediate container 527616c44226
 ---> 0cd3a59afd9f
Step 4/22 : ARG BUILD_COMMIT
 ---> Running in 705e06e5febe
Removing intermediate container 705e06e5febe
 ---> 23fc763722d6
Step 5/22 : ARG BUILD_DATE
 ---> Running in b2d34378c038
Removing intermediate container b2d34378c038
 ---> 71f46d2fb6c8
Step 6/22 : ENV SUPPRESS_NO_CONFIG_WARNING=1 	S6_FIX_ATTRS_HIDDEN=1 	S6_BEHAVIOUR_IF_STAGE2_FAILS=1 	NODE_ENV=production 	NPM_BUILD_VERSION="${BUILD_VERSION}" 	NPM_BUILD_COMMIT="${BUILD_COMMIT}" 	NPM_BUILD_DATE="${BUILD_DATE}"
 ---> Running in 2d79b60a4763
Removing intermediate container 2d79b60a4763
 ---> 28245fd75157
Step 7/22 : RUN echo "fs.file-max = 65535" > /etc/sysctl.conf 	&& apt-get update 	&& apt-get install -y --no-install-recommends jq logrotate 	&& apt-get clean 	&& rm -rf /var/lib/apt/lists/*
 ---> Running in 31d59d5ab2cc
Ign:1 http://security.debian.org/debian-security stable/updates InRelease
Err:2 http://security.debian.org/debian-security stable/updates Release
  404  Not Found [IP: 151.101.66.132 80]
Get:3 http://deb.debian.org/debian stable InRelease [116 kB]
Get:4 https://deb.nodesource.com/node_15.x buster InRelease [4584 B]
Get:5 http://deb.debian.org/debian stable-updates InRelease [39.4 kB]
Get:6 http://deb.debian.org/debian stable/main amd64 Packages [8183 kB]
Get:7 https://deb.nodesource.com/node_15.x buster/main amd64 Packages [762 B]
Get:8 http://deb.debian.org/debian stable-updates/main amd64 Packages [2596 B]
Reading package lists...
E: The repository 'http://security.debian.org/debian-security stable/updates Release' does not have a Release file.
The command '/bin/bash -o pipefail -c echo "fs.file-max = 65535" > /etc/sysctl.conf 	&& apt-get update 	&& apt-get install -y --no-install-recommends jq logrotate 	&& apt-get clean 	&& rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

@archef2000
Copy link

I tried the Theme from @Amoenus on Gist and just combined the main.css under /app/frontend/css/main.css in the docker container and the dark-theme and it all funktions.

@hellblue
Copy link

hellblue commented May 4, 2022

I use nginx proxy manager without docker and tried it. It works good and looks much better now.

I tried the Theme from @Amoenus on Gist and just combined the main.css under /app/frontend/css/main.css in the docker container and the dark-theme and it all funktions.

@Trackhe
Copy link

Trackhe commented May 16, 2022

Please make a dark mode standard. My eyes are bleeding.

@root9191
Copy link

I use now the Dark Theme from theme-park.dev - looks really good 😎

@Amoenus
Copy link

Amoenus commented May 19, 2022

Nice one @root9191. I am switching to these themes as well.

For people using Stylus the cheeky way to use the theme is like this

@import url("https://theme-park.dev/css/base/nginx-proxy-manager/organizr.css");

@kmanwar89
Copy link

Is there any progress on this dark mode w/o the use of additional add-ons?

@GilbN
Copy link

GilbN commented Aug 1, 2022

Nice one @root9191. I am switching to these themes as well.

For people using Stylus the cheeky way to use the theme is like this

@import url("https://theme-park.dev/css/base/nginx-proxy-manager/organizr.css");

I've added a script you can mount btw.
https://docs.theme-park.dev/themes/nginx-proxy-manager/#docker

https://github.com/GilbN/theme.park/blob/develop/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark

@carlox97
Copy link

@GilbN I'm having some troubles settings this up:
following the docs you linked I downloaded "98-themepark" from the repo, then you say to mount it like follows.

    volumes:
      - /your/save/path/98-themepark-npm:/etc/cont-init.d/99-themepark

I'm doing that in the Nging Proxy Manager's docker-compose.yml, is that correct? In the volume entry do we have to point to the script itself or to the folder containing it?
The file is "98-themepark" but it's "98-themepark-npm" in the example provided, same for the chmod +x command.

@GilbN
Copy link

GilbN commented Aug 13, 2022

@GilbN I'm having some troubles settings this up: following the docs you linked I downloaded "98-themepark" from the repo, then you say to mount it like follows.

    volumes:
      - /your/save/path/98-themepark-npm:/etc/cont-init.d/99-themepark

I'm doing that in the Nging Proxy Manager's docker-compose.yml, is that correct? In the volume entry do we have to point to the script itself or to the folder containing it? The file is "98-themepark" but it's "98-themepark-npm" in the example provided, same for the chmod +x command.

There's a bug in the script. Change APP_FILEPATH to /app/frontend

And yes, point it to the file. And the name doesn't matter.

@CIsxxc
Copy link

CIsxxc commented Aug 17, 2022

@GilbN I'm having some troubles settings this up: following the docs you linked I downloaded "98-themepark" from the repo, then you say to mount it like follows.

    volumes:
      - /your/save/path/98-themepark-npm:/etc/cont-init.d/99-themepark

I'm doing that in the Nging Proxy Manager's docker-compose.yml, is that correct? In the volume entry do we have to point to the script itself or to the folder containing it? The file is "98-themepark" but it's "98-themepark-npm" in the example provided, same for the chmod +x command.

There's a bug in the script. Change APP_FILEPATH to /app/frontend

And yes, point it to the file. And the name doesn't matter.

When will the script be updated? - I see 'APP_FILEPATH' referenced serveral times throughout the script. Do I need to edit every single one and replace it with 'app/frontend'?

@GilbN
Copy link

GilbN commented Aug 18, 2022

@GilbN I'm having some troubles settings this up: following the docs you linked I downloaded "98-themepark" from the repo, then you say to mount it like follows.

volumes:
  - /your/save/path/98-themepark-npm:/etc/cont-init.d/99-themepark

I'm doing that in the Nging Proxy Manager's docker-compose.yml, is that correct? In the volume entry do we have to point to the script itself or to the folder containing it? The file is "98-themepark" but it's "98-themepark-npm" in the example provided, same for the chmod +x command.

There's a bug in the script. Change APP_FILEPATH to /app/frontend

And yes, point it to the file. And the name doesn't matter.

When will the script be updated? - I see 'APP_FILEPATH' referenced serveral times throughout the script. Do I need to edit every single one and replace it with 'app/frontend'?

The script has been updated. Did you you try it?
https://github.com/GilbN/theme.park/blob/develop/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark

@henkiewie
Copy link

henkiewie commented Oct 28, 2022

The script has been updated. Did you you try it? https://github.com/GilbN/theme.park/blob/develop/docker-mods/nginx-proxy-manager/root/etc/cont-init.d/98-themepark

Hi,
It worked for me. Is there also a way back?
[Edit]
Yes there is coment out the volume 😄

@carlox97
Copy link

carlox97 commented Mar 30, 2023

How can I specify which theme to use (eg aquamarine)?
Here there are quite some if you scroll down

edit: found, line 45

@ozdeadmeat
Copy link

Would be nice if they just added this functionality by default as pretty much everything else I use has a dark mode.

@DST73
Copy link

DST73 commented Oct 30, 2023

Hi,
I have installed NGINX using this script from https://tteck.github.io/Proxmox/ witch creates an Container in Proxmox
is there a way to change it to dark mode on such an installation?

Thank you!

@SebastianGwizdala
Copy link

+1 from me as well

Copy link

Issue is now considered stale. If you want to keep it open, please comment 👍

@github-actions github-actions bot added the stale label Aug 27, 2024
@BluePixel4k
Copy link

👍

1 similar comment
@zackwithak13
Copy link

👍🏻

@Cocolin67
Copy link

Any news yet ?

@Ajes1337
Copy link

please add dark theme support

@github-actions github-actions bot removed the stale label Oct 18, 2024
@andmpel
Copy link

andmpel commented Oct 24, 2024

Dark mode support please

@carlox97
Copy link

carlox97 commented Oct 24, 2024

You can already get the dark theme:
in your docker-compose.yml for nginx proxy manager, add the following to the volumes section

    volumes:
      - ./theme/98-themepark:/etc/cont-init.d/99-themepark

in the same folder as your docker-compose.yml create a "theme" folder, and create this 98-themepark file inside it (literally copy and paste), cd theme and make it executable chmod +x 98-themepark-npm

edit line 45 if you want a different theme

Screenshot 2024-10-25 001917

@petrhusak
Copy link

petrhusak commented Oct 25, 2024

You can set dark mode also without bind mount:
If you are using Nginx Proxy Manager as a proxy for the Nginx Proxy Manager itself, you can set the dark mode directly in the proxy settings. Just add custom location with this settings:

proxy_set_header Accept-Encoding "";
sub_filter
   '</head>'
   '<link rel="stylesheet" type="text/css" href="https://theme-park.dev/css/base/nginx-proxy-manager/organizr.css">
   </head>';
sub_filter_once on;

It should look something like this (forward hostname nginx-proxy-manager is the name of my container):
npm
If you want different theme, change organizr.css value. Available css themes:

  • aquamarine.css
  • hotline.css
  • hotpink.css
  • dracula.css
  • dark.css
  • organizr.css
  • space-gray.css
  • overseerr.css
  • plex.css
  • nord.css
  • maroon.css

Sources:
https://docs.theme-park.dev/themes/nginx-proxy-manager/
https://docs.theme-park.dev/setup/#nginx

@AndyVRD
Copy link

AndyVRD commented Dec 13, 2024

Any reason why this is not working? Running NGINX Proxy Manager in a LXC container with Proxmox. Checked the hostname and it's nginxproxymanager like I used in the css template.

image

@shalafi99
Copy link

I had to do a CTRL-SHIFT-R (=reload and ignore cache) in Google Chrome to make it go into effect, after noticing it would only work right away inside an incognito/inprivate tab.

@RobLoach
Copy link

Duplicate of #4314 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests