Files
docudjeex/content/3.serveex/8.development/3.it-tools.md
2025-07-04 13:37:55 +00:00

5.0 KiB
Raw Blame History

navigation, title, main
navigation title main
true IT Tools
fluid
false

:ellipsis{left=0px width=40rem top=10rem blur=140px}

IT Tools

::alert{type="info"} 🎯 Goals:

  • Install IT Tools
  • Expose IT Tools with Swag ::

IT Tools is a container exposing a web page that provides access to a wide range of development tools.

IT Tools

Installation


Open Dockge, click on compose, name the stack it-tools, and paste the following:

---
services:
  it-tools:
    container_name: it-tools
    restart: unless-stopped
    image: corentinth/it-tools:latest
    ports:
      - 3222:80

::alert{type="success"} Tip: Add the Watchtower label to each container to enable automatic updates.

```yaml
services:
  it-tools:
    #...
    labels:
      - com.centurylinklabs.watchtower.enable=true

::

Deploy the container and visit http://yourserverip:3222. Thats it, your IT Tools web UI instance is up and running!

::alert{type="danger"} :::list{type="danger"}

  • If it fails: check your firewall rules. ::: ::

Expose IT Tools with Swag


You might want to access it remotely on all your devices. To do that, we'll expose IT Tools using Swag.

::alert{type="info"} :::list{type="info"}

  • Pre-requisite: We assume youve created a subdomain like tools.yourdomain.com in your DNS zone with CNAME set to yourdomain.com. Also, unless youre using Cloudflare Zero Trust, make sure youve already forwarded port 443 from your router to port 443 on your server in the NAT rules. ::: ::

In Dockge, go to the SWAG stack and edit the compose file to add the IT Tools network:

services:
  swag:
     container_name: # ...
      # ...
     networks:              # Connects the container to the custom network 
      # ...           
      - it-tools            # Network name as defined in the IT Tools stack
    
networks:                   # Defines the custom network
  # ...
  it-tools:                 # Network name as defined in the IT Tools stack
    name: it-tools_default  # Actual name of the external network
    external: true          # Indicates it's an external network

::alert{type="info"} :::list{type="info"}

  • We assume the IT Tools network is named it-tools_default. You can check connectivity by visiting the SWAG dashboard at http://yourserverip:81. ::: ::

::alert{type="info"} :::list{type="info"}

  • We also assume the SWAG network is named swag_default. ::: ::

Restart the stack by clicking "deploy" and wait for SWAG to be fully operational.

Inside the Swag folders, create the file tools.subdomain.conf.

::alert{type="success"} Tip: You can use File Browser to navigate and edit your files instead of using terminal commands. ::

sudo vi /docker/swag/config/nginx/proxy-confs/tools.subdomain.conf

Enter edit mode by pressing i and paste the configuration below:

## Version 2023/12/19

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name tools.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    #if ($lan-ip = yes) { set $geo-whitelist yes; }
    #if ($geo-whitelist = no) { return 404; }
    if ($geo-blacklist = no) { return 404; }

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app it-tools;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}

Press Esc, then save and exit by typing :x and pressing Enter.

And thats it — IT Tools is now exposed!

::alert{type="success"} Tip: You can secure this app with Authentik by opening tools.subdomain.conf and uncommenting the lines include /config/nginx/authentik-server.conf; and include /config/nginx/authentik-location.conf;. Dont forget to create an application and a provider in Authentik. ::