mirror of
https://github.com/CoolnsX/selfhost_podman.git
synced 2025-12-20 03:45:16 +05:30
feat: static web server for my blog website
This commit is contained in:
149
static-web-server/config.toml
Normal file
149
static-web-server/config.toml
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
[general]
|
||||||
|
|
||||||
|
#### Address & Root dir
|
||||||
|
host = "::"
|
||||||
|
port = 12345
|
||||||
|
root = "/var/my-website/public"
|
||||||
|
|
||||||
|
#### Logging
|
||||||
|
log-level = "error"
|
||||||
|
|
||||||
|
#### Cache Control headers
|
||||||
|
cache-control-headers = true
|
||||||
|
|
||||||
|
#### Auto Compression
|
||||||
|
compression = true
|
||||||
|
compression-level = "default"
|
||||||
|
|
||||||
|
#### Error pages
|
||||||
|
# Note: If a relative path is used then it will be resolved under the root directory.
|
||||||
|
page404 = "./404.html"
|
||||||
|
page50x = "./50x.html"
|
||||||
|
|
||||||
|
#### HTTP/2 + TLS
|
||||||
|
http2 = false
|
||||||
|
http2-tls-cert = ""
|
||||||
|
http2-tls-key = ""
|
||||||
|
https-redirect = false
|
||||||
|
https-redirect-host = "localhost"
|
||||||
|
https-redirect-from-port = 80
|
||||||
|
https-redirect-from-hosts = "localhost"
|
||||||
|
|
||||||
|
#### CORS & Security headers
|
||||||
|
# security-headers = true
|
||||||
|
# cors-allow-origins = ""
|
||||||
|
|
||||||
|
#### Directory listing
|
||||||
|
directory-listing = false
|
||||||
|
|
||||||
|
#### Directory listing sorting code
|
||||||
|
directory-listing-order = 1
|
||||||
|
|
||||||
|
#### Directory listing content format
|
||||||
|
directory-listing-format = "html"
|
||||||
|
|
||||||
|
#### Basic Authentication
|
||||||
|
# basic-auth = ""
|
||||||
|
|
||||||
|
#### File descriptor binding
|
||||||
|
# fd = ""
|
||||||
|
|
||||||
|
#### Worker threads
|
||||||
|
threads-multiplier = 1
|
||||||
|
|
||||||
|
#### Grace period after a graceful shutdown
|
||||||
|
grace-period = 0
|
||||||
|
|
||||||
|
#### Page fallback for 404s
|
||||||
|
# page-fallback = ""
|
||||||
|
|
||||||
|
#### Log request Remote Address if available
|
||||||
|
log-remote-address = false
|
||||||
|
|
||||||
|
#### Log real IP from X-Forwarded-For header if available
|
||||||
|
log-forwarded-for = false
|
||||||
|
|
||||||
|
#### IPs to accept the X-Forwarded-For header from. Empty means all
|
||||||
|
trusted-proxies = ['127.0.0.1','::1']
|
||||||
|
|
||||||
|
#### Redirect to trailing slash in the requested directory uri
|
||||||
|
redirect-trailing-slash = true
|
||||||
|
|
||||||
|
#### Check for existing pre-compressed files
|
||||||
|
compression-static = true
|
||||||
|
|
||||||
|
#### Health-check endpoint (GET or HEAD `/health`)
|
||||||
|
health = false
|
||||||
|
|
||||||
|
#### List of index files
|
||||||
|
# index-files = "index.html, index.htm"
|
||||||
|
#### Maintenance Mode
|
||||||
|
|
||||||
|
maintenance-mode = false
|
||||||
|
# maintenance-mode-status = 503
|
||||||
|
# maintenance-mode-file = "./maintenance.html"
|
||||||
|
|
||||||
|
### Windows Only
|
||||||
|
|
||||||
|
#### Run the web server as a Windows Service
|
||||||
|
# windows-service = false
|
||||||
|
|
||||||
|
|
||||||
|
[advanced]
|
||||||
|
|
||||||
|
#### HTTP Headers customization (examples only)
|
||||||
|
|
||||||
|
#### a. Oneline version
|
||||||
|
# [[advanced.headers]]
|
||||||
|
# source = "**/*.{js,css}"
|
||||||
|
# headers = { Access-Control-Allow-Origin = "*" }
|
||||||
|
|
||||||
|
#### b. Multiline version
|
||||||
|
# [[advanced.headers]]
|
||||||
|
# source = "/index.html"
|
||||||
|
# [advanced.headers.headers]
|
||||||
|
# Cache-Control = "public, max-age=36000"
|
||||||
|
# Content-Security-Policy = "frame-ancestors 'self'"
|
||||||
|
# Strict-Transport-Security = "max-age=63072000; includeSubDomains; preload"
|
||||||
|
|
||||||
|
#### c. Multiline version with explicit key (dotted)
|
||||||
|
# [[advanced.headers]]
|
||||||
|
# source = "**/*.{jpg,jpeg,png,ico,gif}"
|
||||||
|
# headers.Strict-Transport-Security = "max-age=63072000; includeSubDomains; preload"
|
||||||
|
|
||||||
|
|
||||||
|
### URL Redirects (examples only)
|
||||||
|
|
||||||
|
# [[advanced.redirects]]
|
||||||
|
# source = "**/*.{jpg,jpeg}"
|
||||||
|
# destination = "/images/generic1.png"
|
||||||
|
# kind = 301
|
||||||
|
|
||||||
|
# [[advanced.redirects]]
|
||||||
|
# source = "/index.html"
|
||||||
|
# destination = "https://static-web-server.net"
|
||||||
|
# kind = 302
|
||||||
|
|
||||||
|
### URL Rewrites (examples only)
|
||||||
|
|
||||||
|
# [[advanced.rewrites]]
|
||||||
|
# source = "**/*.{png,ico,gif}"
|
||||||
|
# destination = "/assets/favicon.ico"
|
||||||
|
## Optional redirection
|
||||||
|
# redirect = 301
|
||||||
|
|
||||||
|
#[[advanced.rewrites]]
|
||||||
|
#source = "/allanime.xml"
|
||||||
|
#destination = "/var/my-website/allanime.xml"
|
||||||
|
|
||||||
|
### Virtual Hosting
|
||||||
|
|
||||||
|
# [[advanced.virtual-hosts]]
|
||||||
|
## But if the "Host" header matches this...
|
||||||
|
# host = "sales.example.com"
|
||||||
|
## ...then files will be served from here instead
|
||||||
|
# root = "/var/sales/html"
|
||||||
|
|
||||||
|
# [[advanced.virtual-hosts]]
|
||||||
|
# host = "blog.example.com"
|
||||||
|
# root = "/var/blog/html"
|
||||||
25
static-web-server/sws.container
Normal file
25
static-web-server/sws.container
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Static Web Server Container
|
||||||
|
|
||||||
|
[Container]
|
||||||
|
Pod=nginx-proxy.pod
|
||||||
|
ContainerName=my-website
|
||||||
|
Image=ghcr.io/static-web-server/static-web-server:latest
|
||||||
|
|
||||||
|
# Enable auto-update container
|
||||||
|
AutoUpdate=registry
|
||||||
|
|
||||||
|
# pass this to attach it to container
|
||||||
|
Environment=SERVER_ROOT=/var/my-website/public
|
||||||
|
Environment=SERVER_CONFIG_FILE=/etc/config.toml
|
||||||
|
|
||||||
|
Volume=%h/my-website:/var/my-website
|
||||||
|
Volume=./config.toml:/etc/config.toml
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=always
|
||||||
|
TimeoutStartSec=300
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
|
||||||
Reference in New Issue
Block a user