"The PocketBase of CDNs" - Me
Utilizing an SQLite database with GORM and the Gin web framework. UI built with Vite + React and wouter.
See our documentation at kevinanielsen.github.io/go-fast-cdn/
Join the discord to talk to fellow users and contributors!
git clone git@github.com:kevinanielsen/go-fast-cdn
or git clone https://github.com/kevinanielsen/go-fast-cdn
This project uses dotenv and I recommend that you do the same.
Read more about the usage on their page.
If you do not wish to use this, you can just rename .example.env to .env and fill in the fields.
- Run
make prep - Run
make clean - Run
make test - Run
make build
Your binary should now be tested, built, and you can run it with bin/go-fast-cdn-linux or bin/go-fast-cdn-windows or bin/go-fast-cdn-darwin
git clone git@github.com:kevinanielsen/go-fast-cdn
or git clone https://github.com/kevinanielsen/go-fast-cdn
docker-compose up -d
For production deployments, you can separate admin UI from public CDN serving using subdomains.
Nginx: See nginx/example.conf for a basic configuration.
Nginx Proxy Manager:
- Create proxy host for
admin.cdn.example.com→http://your-cdn:8080(full access) - Create proxy host for
cdn.example.com→http://your-cdn:8080 - Edit the
cdn.example.comproxy host → Custom Locations tab → Add:- Location:
/api/cdn/download/images/→ Forward tohttp://your-cdn:8080 - Location:
/api/cdn/download/docs/→ Forward tohttp://your-cdn:8080
- Location:
- Click the gear icon ⚙️ (top-right) → In Custom Nginx Configuration, add:
location / { return 403; } - Save. This blocks admin UI access on
cdn.example.com