Tracker-Friendly 29faa02dbb | ||
---|---|---|
library | ||
services-src | ||
.gitignore | ||
LICENSE.md | ||
README.md | ||
build.sh | ||
config.json | ||
go.mod | ||
go.sum | ||
main.go |
README.md
Fulgens Web Server
A simple and fast plugin-based web server written in Golang.
It utilises Chi and the Go standard library to provide a fast and efficient web server, with the ability to add plugins to extend its functionality.
Features
- Fast and efficient
- Plugin-based
- Easy to use
- Comes with OAuth2 and Blob storage (known as the "nucleus" services)
- SQLite and PostgreSQL support
- Easy to extend
Installation
To install, git clone the repository:
git clone https://git.ailur.dev/Ailur/fulgens.git --depth 1
Then, build the server:
./build.sh
Usage
To run the server, simply run the binary:
./fulgens
Configuration
The server can be configured using a config.json
file. An example configuration file is provided in the repository.
Global
port
- The port the server listens onip
- The IP address the server listens onserviceDirectory
- The directory where services are storedresourceDirectory
- The directory where service resources are stored
Logging
enabled
- Whether file logging is enabledfile
- The file to log to
Database
type
- The type of database to use (sqlite or postgres)connectionString
- The connection string for the database (postgres only)databasePath
- The directory to store the databases (sqlite only) It is necessary to have a separate directory for each service, as SQLite does not support multiple schemas in a single file.
Services
For all services
subdomain
- The subdomain the service is hosted on (optional, will run on the root domain if not specified)
Storage
Note the storage service is unfinished and should not be used in production.
path
- The path to store blobsdefaultQuota
- The maximum size of the storage in bytes
Auth
privacyPolicy
- The URL to the privacy policyurl
- The URL it is being hosted ontestAppEnabled
- Whether to enable the OAuth2 test apptestAppIsInteralApp
- Whether the test app should have seamless logon like an internal service (required iftestAppEnabled
is true)identifier
- The name of the OAuth2 serviceadminKey
- The key used to access the admin panel and list users
Contributing
Contributions are welcome! Please open a pull request with your changes.
Plugin development
Plugins require the use of the library
package, found here.
This provides them with the necessary resources to interact with the rest of the server
Enterprise support
For enterprise support, please visit Ailur Enterprise.