luciders/README.md
2024-11-04 17:34:32 +11:00

36 lines
1.8 KiB
Markdown

# `luciders` Server
Dynamically serving up [lucide](https://lucide.dev) icons. Powered by 🦀 Rust!
This project is focuses on minimising resource usage and maximising performance. It is designed to be run on a server and used as an API endpoint for other projects rather than being a standalone application.
Please see `/info` endpoint handler in `src/main.rs` for more API details.
# Setup Instructions
You will want a copy of the `icons` dir from the Lucide [Github Repo](https://github.com/lucide-icons/lucide) in the root of this project. If you are developing this project, you can simply clone the configured submodule:
```bash
git submodule update --init --recursive
```
If you are deploying to production, you can provide a directory path in the first argument to the binary. For example, if you have the icons in `/var/www/icons`:
```bash
./luciders /var/www/icons
```
Only `.svg` files will be read from that directory. The server's default port is `7878`, although this can be configured with the `PORT` environment variable.
# Docker
You can build and run this project with Docker. The Dockerfile is configured to use the submodule for the icons. To build the image:
```bash
git submodule update --init --recursive # Update the submodule if you haven't already
docker build -t luciders . # Build Docker image
```
Port `7878` is exposed by default.
# License
Please see the `LICENSE.md` file in this directory. This project is licensed under the AGPL-3.0 license.
Additionally: You may host this project on your own server, and host it for others. You may then use that server in your own projects (e.g. as an API endpoint), even if that project is closed-source or proprietary. However, any modifications to this project must be made available under the AGPL-3.0 license. This is to ensure that the project remains open-source and free for all to use.