mirror of
https://github.com/profullstack/agentbbs.git
synced 2026-08-13 14:27:27 +00:00
files: per-user public at ~name/public; home = member directory
Re-model the web file host as a file server (not a website host): - Drop the misnamed /site area. A member's public files are now their /me/public subfolder (unix ~/public), served anonymously at ~<name>/public. The rest of /me stays private; only ~name/public is ever exposed. Bare /~name redirects to /~name/public/. - The root / is now a directory of ALL members, each linked to their BBS site (https://<bbs-host>/~name via WebConfig.SiteBase) AND their public files here (~name/public). No longer hides empty members. - Sites/homepages stay on the BBS — files.<host> only links to them. - Usage gauge is just /me again (which includes /me/public). setup.sh + docs updated; tests cover ~name/public browse/download, the bare-~name redirect, empty-member empty-listing, /public-only exposure, and traversal confinement. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
87fb2b4a1f
commit
a2d4817a8e
9 changed files with 203 additions and 166 deletions
|
|
@ -23,7 +23,10 @@ func (a *app) startFilesWeb() {
|
|||
}
|
||||
addr := env("AGENTBBS_FILES_WEB_ADDR", "127.0.0.1:8092")
|
||||
title := env("AGENTBBS_FILES_WEB_TITLE", "files."+strings.TrimPrefix(a.host, "bbs."))
|
||||
h := a.files.WebHandler(files.WebConfig{Authenticate: a.filesWebAuth, Title: title})
|
||||
// Member homepages ("sites") live on the BBS host; the ~user directory links
|
||||
// each member to https://<bbs-host>/~name alongside their public files here.
|
||||
siteBase := env("AGENTBBS_FILES_WEB_SITE_BASE", "https://"+a.host)
|
||||
h := a.files.WebHandler(files.WebConfig{Authenticate: a.filesWebAuth, Title: title, SiteBase: siteBase})
|
||||
srv := &http.Server{Addr: addr, Handler: h, ReadHeaderTimeout: 10 * time.Second}
|
||||
go func() {
|
||||
log.Info("files web listening", "addr", addr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue