Web Hosting on Your Seedbox or Storage Box
Every Pulsed Media seedbox and storage box includes a public web folder served over HTTP/HTTPS with no authentication. Drop files into ~/www/public/, and they are live at /public-USERNAME/ on your server. PHP works out of the box. Docker rootless lets you run anything else.
This is not a separate product. It ships with every plan, on the same PMSS platform that runs the seedbox fleet.
How It Works
The lighttpd web server running your seedbox panel serves three URL paths per user:
| Path | Maps To | Authentication |
|---|---|---|
/user-USERNAME/ |
~/www/ |
Password required |
/public-USERNAME/ |
~/www/public/ |
None — open to the internet |
/webdav-USERNAME/ |
~/ (home directory) |
Password required |
The public folder is the web hosting surface. Anything placed in ~/www/public/ is accessible to anyone with the URL. Directory listing is enabled by default, so even a folder of files becomes a browsable download page without writing any HTML.
Each user also gets two subdomains:
- Public subdomain (
USERNAME.serverhostname.pulsedmedia.com) — serves/public-USERNAME/content without authentication - Private subdomain (hash-based hostname) — serves
/user-USERNAME/content with authentication
PHP
PHP runs via FastCGI with worker processes that scale automatically based on your plan's CPU allocation. The server handles process management — no manual setup needed.
Custom PHP settings go in ~/.lighttpd/php.ini. Memory limits range from 125 MB to 1024 MB depending on plan resources. Common settings like upload_max_filesize, max_execution_time, and post_max_size are configurable.
Index file priority: index.php, index.html, index.lighttpd.html.
Custom Web Server Configuration
lighttpd reads custom configuration from the drop-in directory ~/.lighttpd/custom.d/. Place .conf files there — one per application or rule set. PMSS-managed services (Invidious, Deluge, rclone, media stack) write their own fragments here automatically.
This is how you add URL rewriting, reverse proxy rules for Docker containers, custom headers, or any lighttpd directive. The configuration loads automatically on lighttpd restart.
Note: The legacy single file ~/.lighttpd/custom still loads but is deprecated — PMSS may overwrite it during upgrades. Use ~/.lighttpd/custom.d/ for all new configuration.
WebDAV
WebDAV is enabled by default. The public folder (~/www/public/) is writable over WebDAV, so you can upload web content from any WebDAV client — including Windows Explorer, macOS Finder, and mobile file managers — without needing SSH or FTP.
The rest of ~/www/ is read-only over WebDAV by default. To enable full write access to ~/www/, create the marker file ~/.lighttpd/webdav.www-writable.
What You Can Host
Static Sites
Static site generators — Hugo, Jekyll, Pelican, MkDocs, Eleventy — produce plain HTML/CSS/JS. Build locally or over SSH, drop the output into ~/www/public/, done. No database, no runtime, no configuration.
A cron job over SSH can automate the cycle: git pull, rebuild, deploy. The site updates itself.
For documentation sites built with MkDocs or Sphinx, this is a zero-cost hosting solution that stays online as long as the seedbox or storage box is active.
File Sharing and Image Hosting
The simplest and most practical use case. Upload images, PDFs, builds, releases, or any files to ~/www/public/ and share the direct URL. Directory listing gives you a built-in file browser without writing any code.
This avoids third-party image hosts (Imgur, ImgBB) that compress images, inject tracking pixels, or delete files after inactivity. For newsletter creators and forum users, self-hosted images mean permanent links under your control. One Pulsed Media customer uses this to host images linked in email newsletters — the images load from the seedbox, the links never expire.
For large file distribution — ISOs, video, datasets, game mods, open source releases — the bandwidth is unlimited. No transfer quotas during sudden download spikes. A storage box with terabytes of space is a natural fit for hosting large media libraries, Linux ISOs, or open data archives. For small files with high request counts — thumbnails, API responses, JavaScript bundles — an SSD-based seedbox like the M10G handles the IOPS.
PHP Web Applications
Full PHP FastCGI means PHP applications run natively.
Flat-file applications (no database needed) work immediately:
- DokuWiki — wiki engine using flat files, no database. Runs directly on lighttpd with PHP. Install by extracting to
~/www/public/dokuwiki/and visiting the installer URL. - Grav — modern flat-file CMS with admin panel, themes, plugins. Extract and run.
- PicoCMS — minimal flat-file CMS. A single PHP file and Markdown content files.
Database-backed applications work with a database (see Database section below):
- WordPress — runs on lighttpd with PHP FastCGI. URL rewriting for permalinks requires lighttpd
url.rewriterules in~/.lighttpd/custom.d/wordpress.conf(WordPress expects Apache.htaccess, which lighttpd does not use). MariaDB via Docker handles the database. - BookStack — wiki/documentation platform. Best run entirely via Docker.
Custom PHP scripts — contact forms, file listing pages, JSON APIs, webhook receivers, data collection endpoints. Any PHP script placed in the public folder runs via FastCGI.
Databases
SQLite works out of the box. PHP includes the php-sqlite3 extension, so any PHP application that uses SQLite (many flat-file CMS tools, custom apps, lightweight analytics) runs with zero setup. The database file lives alongside the application in your home directory. For single-user applications and moderate write loads, SQLite is the simplest option.
MariaDB is available as a Docker container via the PMSS one-click installer:
docker-install-lsio mariadb docker-install-lsio phpmyadmin
Credentials are auto-generated to ~/docker/mariadb/pmss-credentials.env. MariaDB binds to 127.0.0.1 only. phpMyAdmin connects over the per-user Docker network.
Alternatively, MariaDB or MySQL static binaries can be downloaded and run directly from your home directory — bind to a high port on localhost, no Docker needed. This works because PMSS accounts have full userspace execution. Docker is the easier path; direct binaries are an option for users who want to avoid container overhead.
Self-Hosted Knowledge Bases
Kiwix serves ZIM files — compressed snapshots of Wikipedia and other reference sites — over HTTP. A full English Wikipedia with images runs about 95-100 GB. Run kiwix-serve as a user-space binary, proxy it through lighttpd via a fragment in ~/.lighttpd/custom.d/. Your own offline Wikipedia, accessible from anywhere.
DokuWiki runs natively on PHP without a database — flat-file storage only. Good for personal knowledge management, team wikis, or course materials.
API Endpoints and Webhook Receivers
PHP scripts in the public folder work as API endpoints. A GitHub webhook receiver that triggers deployment. A JSON API serving data from flat files. An IoT data collection endpoint. A Zapier or IFTTT webhook target that kicks off scripts over SSH.
The seedbox is always on, so it reliably receives webhooks at any hour. Add URL routing via lighttpd rewrite rules in ~/.lighttpd/custom.d/api.conf for clean API paths.
Development Staging
The two-subdomain setup gives you a staging/production split: preview on the authenticated private subdomain, publish to the public folder when ready. SSH with Git enables pull-based deployment. Docker rootless lets you run Node.js, Python, Go, or any development stack alongside PHP.
Docker Web Applications
Docker rootless opens up everything beyond PHP. Any containerized web application works:
- Nextcloud — self-hosted cloud storage and collaboration platform
- Gitea — lightweight self-hosted Git with web interface
- Ghost — publishing and newsletter platform
- Wiki.js — modern wiki with Markdown, Git sync, and full-text search
- Grafana — dashboards and monitoring
- Invidious — privacy-respecting YouTube frontend. PMSS auto-generates the reverse proxy configuration when you set
~/.invidiousPort— no manual lighttpd config needed.
For most containers, the pattern is: run it via docker run, note the port, add a reverse proxy fragment in ~/.lighttpd/custom.d/appname.conf. Some applications — Invidious, Deluge, rclone, qBittorrent — get PMSS-managed proxy fragments written automatically.
PMSS includes a one-click installer for the media stack (Jellyfin, Sonarr, Radarr, Prowlarr, SABnzbd, Cloudplow) and LinuxServer.io containers for MariaDB, phpMyAdmin, qBittorrent, Jellyfin, Radarr, Sonarr, and Prowlarr.
Custom web app tabs can be added to the seedbox web panel via the ~/.customFrames file. Any Docker service proxied through lighttpd can appear as a tab in the GUI alongside ruTorrent and the file manager.
CDN and Asset Hosting
Host CSS, JavaScript, images, fonts, or other static assets in the public folder and reference them from external websites. For personal projects or small sites that do not need global edge caching, this is reliable asset hosting already included in your plan.
Add CORS headers via ~/.lighttpd/custom.d/cors.conf if the assets are loaded cross-origin:
setenv.add-response-header += ("Access-Control-Allow-Origin" => "*")
Portfolio and Personal Pages
An HTML/CSS portfolio or resume page dropped into ~/www/public/ is live in seconds. No extra hosting costs, no separate service. For technical users, hosting your own site on your own seedbox says something about what you know.
Quick Start
Static HTML or Images
- Connect via SFTP or WebDAV
- Upload files to
~/www/public/ - Access at
https://SERVERNAME.pulsedmedia.com/public-USERNAME/
PHP Application
- Upload PHP files to
~/www/public/ - If the app needs URL rewriting, add rules to
~/.lighttpd/custom.d/myapp.conf - If the app needs a database, enable Docker and install MariaDB:
# Enable Docker from the web panel stats page, then: docker-install-lsio mariadb docker-install-lsio phpmyadmin
Docker Web App
- Enable Docker from the web panel stats page
- Run your container:
docker run -d -p PORT:PORT image-name - Add reverse proxy in
~/.lighttpd/custom.d/appname.conf:
$HTTP["url"] =~ "^/public-USERNAME/myapp/" {
proxy.server = ("" => (("host" => "127.0.0.1", "port" => PORT)))
}
Limitations
This is web hosting included with a seedbox or storage box, not a dedicated web hosting product. Know the boundaries:
- No custom domains — content is served under the server's hostname. PM is working on hashed subdomains for privacy (so the username is not in the URL).
- No .htaccess — lighttpd does not support Apache .htaccess files. URL rewriting goes in
~/.lighttpd/custom.d/using lighttpd syntax. - Shared resources — CPU, RAM, and bandwidth are shared with your seedbox/storage box services (rtorrent, Deluge, Docker containers). Heavy web traffic competes with heavy torrenting.
- Server location — all servers are in Finland (Helsinki and Kerava). Latency is low within Europe, higher for users in North America, Asia, or Oceania.
- PHP extensions — depend on the system-wide PHP installation. Common extensions (mbstring, curl, gd, xml, json, sqlite3) are available. If a specific extension is missing, open a support ticket.
- Security is your responsibility — the public folder is open to the internet. If you run PHP applications, standard web security applies: keep software updated, validate input, use strong passwords for any admin panels. PMSS provides the hosting surface; securing what you put on it is up to you.
What Makes This Different
Seedbox providers generally offer SSH access and stop there. Storage box products like Hetzner Storage Box are pure storage — FTP, SFTP, rsync, WebDAV — with no HTTP serving, no PHP, and no Docker.
Pulsed Media's PMSS platform ships the full web hosting stack on every plan:
- Built-in public folder with PHP — not a hack, not a workaround, a first-class URL path in the web server configuration
- Docker rootless on every plan — run Nextcloud, Gitea, Ghost, or any containerized web application
- Custom lighttpd configuration — reverse proxy Docker containers, add URL rewriting, set custom headers via
~/.lighttpd/custom.d/ - WebDAV for content upload — manage web content from any device without SSH
- MariaDB and phpMyAdmin via Docker — database-backed applications are supported
- Auto-scaled PHP workers — process count adjusts to plan resources automatically
- Web panel integration — custom tabs for your Docker services right in the seedbox GUI
A seedbox is already an always-on Linux server with SSH, storage, and bandwidth. PMSS makes it a web host too.
See Also
- Storage_Boxes — storage box plans and use cases
- Docker_on_PMSS — Docker rootless setup and container management
- install-media-stack.sh — Media Server Setup — one-command media stack installer
- Seedbox and Storage Features — complete feature list
- Using Your Seedbox as Private Cloud Storage via SFTP
- Seedbox Access via FTP, SSH and SFTP
- Lighttpd
- WebDAV