/Metallic

A powerful web proxy built for speed and customization.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Metallic

A powerful web proxy built for speed and customization.

Access the web with this stylish web proxy made in Preact supporting many sites. Metallic was originally created for TN's proxathon where it won 2nd place!

Features

  • Modern and clean design
  • Support for many popular sites
  • Customizable interface
  • Mobile support
  • Expansive library of themes
  • Large selection of games thanks to Radon Games!

Setup

Metallic uses pnpm. Install it using npm install -g pnpm.

Tip

Run pnpm install to install the required dependencies.

Run

Run pnpm start to start the server. If no build folder if found, Metallic will attempt to build.

Build

Run pnpm run build to build app for production into the build folder.

Build Static

Run pnpm run build-static to build the app for production into the dist folder. This is for static hosting on Github Pages etc. Make sure to change the Wisp server in /index.html to an external one and turn off Rammerhead in /src/settings.ts.

Development

Run npm run dev to run the app in development mode.

Configuration

Themes

Themes can be configured from the /src/themes.json file. The file should be an array of objects using the format below.

Important

Themes file will be validated before building, starting the server, or the dev server.

{
    "name": "string", # Display name of theme
    "id": "string", # Unique ID of theme
    "theme": {
        "background": "string", # Background color of site
        "secondary": "string", # Buttons and inputs
        "primary": "string", # Icons amd logo
        "text": "string", # Text color
        "textInverse": "string", # Text color for buttons and inputs
        "font": "string" # Font for website (default is "Roboto")
    },
    "custom": { # Optional
        "selector": { # CSS selector (".nav" for example)
            "key": "string" # CSS key and value ("background": "red" for example)
        }
    }
}

Issues

Using older versions of Node.js will cause Metallic not work. Upgrade to the latest version using nvm install --lts.

Changelog/Roadmap

Check out the changelog and roadmap

License

Metallic uses the AGPL-3.0 license.