These are what the different files / directories contain in this repository.
| File/folder | Description | Directory |
|---|---|---|
.github |
Contains GitHub related files, such as workflows. | Yes |
branding |
Contains Gamma artwork. | Yes |
docs |
Contains documentation for GWS. | Yes |
src |
Source code of Gamma Web Server. | Yes |
.all-contributorsrc |
All-Contributors bot configuration file | No |
.gitattributes |
Defines attribute rules for Git repository. | No |
.gitignore |
Defines what to not commit to Git. | No |
.markdownlint.json |
Markdownlint configuration file. | No |
.prettierignore |
Defines folders or files to not format in Prettier | No |
.prettierrc |
Prettier configuration file. | No |
CHANGELOG.md |
Contains automatically generated GWS Changelogs. | No |
CODE_OF_CONDUCT.md |
This contains the contributor covenant code of conduct. | No |
LICENSE |
The Gamma Web Server license. | No |
README.md |
Before asking questions, read this file. | No |
SECURITY.md |
Contains the security policy of Gamma, along with supported versions. | No |
gen_changelog.cmd |
Command file for generating changelogs in CHANGELOG.md | No |
- Supports
HTTPandHTTPS - Custom error pages (404, 403, 500, 429)
- CORS support with configurable origins and headers
- Rate limiting with IP-based token bucket algorithm
- Gzip compression middleware
- Request logging middleware
- Easy & quick setup
- Easy to use configuration file
Read our build documentation @ /docs/build.md to learn how to build Gamma Web Server.
Download the latest release from GitHub, or find the latest release on our website: https://www.gammaws.gq
To start Gamma Web Server, double click on the .exe file, or run it through the command-line.
.\gws.exeTo see your website, visit the link showed on the command-line below the product information. By default, the link is localhost.
Gamma Web Server uses a JSON configuration file to customize its behavior. You can specify the port, the document root & more in the configuration file. You can find an example config.json in the src/json directory. One will be generated when the project is built.
Here is an example of what the config.json should look like.
{
"port": ":80",
"domain": "localhost",
"static_dir": "html",
"tls_config": {
"enabled": false,
"cert_file": "server.crt",
"key_file": "server.key"
},
"middleware": {
"logging_middleware_enabled": false,
"gzip_middleware_enabled": false
},
"error_pages": {
"enabled": true,
"error_pages_dir": "html/errors",
"pages": {
"404": "404.html",
"500": "500.html",
"403": "403.html",
"429": "429.html"
}
},
"cors": {
"enabled": false,
"allowed_origins": ["*"],
"allowed_methods": ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
"allowed_headers": ["Content-Type", "Authorization"],
"allow_credentials": false,
"max_age": 3600
},
"rate_limit": {
"enabled": false,
"requests_per_minute": 100,
"burst": 20,
"whitelist": ["127.0.0.1", "::1"],
"exempt_paths": ["/html/", "/favicon/"]
}
}Gamma Web Server is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Thank you to the wonderful people below! (emoji key):
recon π» π π¨ π‘ π π π¦ |
porokimun π¨ |
kimotpe π¦ |
zauce π¦ |
This project follows the all-contributors specification. Contributions of any kind welcome!