Home
Welcome to the Web Portal Lite docs.
What Is Web Portal Lite?
Web Portal Lite is a web dashboard to manage a page of links. It offers a minimal feature set to the feature rich Web Portal. Designed for users who just want to create a fancy looking links page and not worry about the advanced features.
Features
- Access a grid of beautiful links to your web services
- Works without JavaScript, to provide a lightning fast experience
- Customise dashboard through a basic yaml file (no database needed)
- Wide range of link colors (or no color)
- Provide your own app icons for links
- Create groups of links
- Optionally secure the portal with user accounts
- Icon based theme
- Dark/Light mode
- Lightweight Docker image
If this feature set is too limited check out Web Portal.
Showcase
Install
This section will demonstrate how Web Portal Lite can be installed and configured.
Important Notes
Please read these notes before continuing.
- Docker is not required, although not currently documented
- HTTPS is not currently supported, you will need to use a reverse proxy
- App icons are not included, you will need to provide your own
Server Configuration
Before starting the server certain configs need to be set which are given as environment variables.
Prefix all environment variables with ROCKET_
All environment variables must be UPPER CASE
Name | Description | Default | Docker Default |
---|---|---|---|
CONFIG_PATH | Where the dashboard config lives | ./data/config.yml | ./app/config.yml |
ICONS_PATH | Where icons will be stored | ./data/icons | ./app/icons |
PUBLIC_DASH_USERNAME | The public dashboard username, only used when public dashboard is enabled | public | public |
SECRET_KEY | Secure 256-bit base64 encoded string | ||
ADDRESS | What address to bind to | 0.0.0.0 | 0.0.0.0 |
PORT | What port to use for bind | 8000 | 8000 |
Openssl can be used to generate a secret key:
openssl rand -base64 32
Dashboard Configuration
Before starting the server a dashboard config will need to be created. This is supplied as a YAML file.
- After modification the server will need to be restarted
- Use the built-in CLI to produce a template config
- Use the built-in CLI to produce a hashed password
- The 'public' account password should be left blank, if
public_dash
is enabled
Docker
After configs have been created, you can create a Docker Compose file:
version: "3"
services:
web-portal-lite:
container_name: web-portal-lite
image: ghcr.io/enchant97/web-portal-lite:1
restart: unless-stopped
volumes:
- ./config.yml:/app/config.yml:ro
- ./icons:/app/icons:ro
ports:
- 8000:8000
environment:
# THIS MUST BE CHANGED
- "ROCKET_SECRET_KEY=pMZceGSN6w85+KEmpywAivvp9OYmul6XXnaQXVveVmE="
Then run:
docker compose up -d
Without Docker
git clone https://github.com/enchant97/web-portal-lite.git
cd web-portal-lite
cargo build --release
cp target/release/web-portal-lite /usr/local/bin/web-portal-lite
web-portal-lite <command>
CLI
This page shows how the built in CLI can be used.
Using The CLI From Docker
By default when running the container it will execute the "serve" command, you can override this to use the CLI. Here is a few ways this can be accomplished:
Spin up a temporary container overriding the command:
docker run --rm -it ghcr.io/enchant97/web-portal-lite:1 <command>
Exec into running container (will not work if no config has been set):
docker exec -it <container name> ./web-portal-lite <command>
Commands
Serve
To serve the actual web server this command can be used:
This will need a valid config before launching
web-portal-lite serve
Hash Passwords
To use the user accounts feature a hashed password is expected, use this command to hash a given password. Once the password has been hashed; simply copy it into the password field in your config.
web-portal-lite pw-hasher
enter password: <password>
hashed password: $argon2id$...
Generate Config
To gain a template config the following command can be run. This will output to stdout, you can then copy and paste this into a config.yml file.
web-portal-lite gen-config
Get Version
web-portal-lite version
Icons
The available icons depends on what icons you have installed. They will match the filename without extension, taken from both the svg and png folder.
A popular repository for getting these icons is at: https://github.com/walkxcode/Dashboard-Icons. You can also get my app icons at: https://github.com/enchant97/app-icons. These projects are both in the correct format.
Adding Icons
To set the icon name config you will need icons in the icon folder, these will need to be arranged in the format shown below:
icons/
svg/
some-app.svg
png/
some-app.png
Colors
This page documents all available color names that can be used in the user config file.
Can be customized by overriding the static/colors.css file.
- no-color
- white
- grey
- grey-black
- black
- red
- red-alt
- orange
- orange-alt
- yellow
- yellow-alt
- green
- green-alt
- green-blue
- green-blue-alt
- cyan
- cyan-alt
- blue
- blue-alt
- purple
- purple-alt
- pink
- pink-alt
- pink-red
- pink-red-alt
Contributing
Contributions are welcome, but first please read the guidelines shown below:
- Try to create performant code (both memory and cpu)
- Ensure code uses Rust's recommendations
- Run Rust's clippy before pushing
- New features can be requested, but may not get implemented.
- Doc contributions are accepted
- Don't use GitHub's issues for reporting vulnerabilities
- Make commit messages useful, commits with names like "Updated x.rs" will be rejected
- Test your code before submitting to pull request
- Contributions must be licensed under the same as the project
- Do not use deprecated features
- Project uses Rust stable, experimental features cannot be used
- If your not sure on anything, just ask