コミット
4b6defbf9c
11
README.md
11
README.md
|
@ -58,6 +58,17 @@ go build -o gothub
|
|||
|
||||
If you don't want to use port 3000 for GotHub, set the GOTHUB_PORT environment variable to the port you want to use.
|
||||
|
||||
If you want to be in the official instance list, you also need to fill these Instance Privacy environment variables:
|
||||
```
|
||||
GOTHUB_IP_LOGGED=true/false
|
||||
GOTHUB_REQUEST_URL_LOGGED=true/false
|
||||
GOTHUB_USER_AGENT_LOGGED=true/false
|
||||
GOTHUB_DIAGNOSTIC_INFO_LOGGED=true/false
|
||||
GOTHUB_INSTANCE_PRIVACY_POLICY=""
|
||||
GOTHUB_INSTANCE_COUNTRY=""
|
||||
GOTHUB_INSTANCE_PROVIDER=""
|
||||
GOTHUB_INSTANCE_CLOUDFLARE=true/false
|
||||
```
|
||||
### Web server configuration (Caddy)
|
||||
We recommend Caddy for the web server, as it provides automatic HTTPS, HTTP/3 and is easy to setup.
|
||||
```caddyfile
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
package pages
|
||||
|
||||
import (
|
||||
"codeberg.org/gothub/gothub/utils"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"os"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
type PrivacyInfo struct {
|
||||
IPAddr string
|
||||
ReqURL string
|
||||
UserAgent string
|
||||
Diagnostics string
|
||||
Country string
|
||||
Provider string
|
||||
Cloudflare string
|
||||
PrivacyPolicy string
|
||||
Version string
|
||||
GoVersion string
|
||||
FiberVersion string
|
||||
}
|
||||
|
||||
func HandlePrivacy(c *fiber.Ctx) error {
|
||||
var privacyInfoArray []PrivacyInfo
|
||||
privacyInfoArray = append(privacyInfoArray, PrivacyInfo{
|
||||
IPAddr: os.Getenv("GOTHUB_IP_LOGGED"),
|
||||
ReqURL: os.Getenv("GOTHUB_REQUEST_URL_LOGGED"),
|
||||
UserAgent: os.Getenv("GOTHUB_USER_AGENT_LOGGED"),
|
||||
Diagnostics: os.Getenv("GOTHUB_DIAGNOSTIC_INFO_LOGGED"),
|
||||
Country: os.Getenv("GOTHUB_INSTANCE_COUNTRY"),
|
||||
Provider: os.Getenv("GOTHUB_INSTANCE_PROVIDER"),
|
||||
Cloudflare: os.Getenv("GOTHUB_INSTANCE_CLOUDFLARE"),
|
||||
PrivacyPolicy: os.Getenv("GOTHUB_INSTANCE_PRIVACY_POLICY"),
|
||||
Version: utils.Version(),
|
||||
FiberVersion: fiber.Version,
|
||||
GoVersion: runtime.Version(),
|
||||
})
|
||||
|
||||
return c.Render("privacy", fiber.Map{
|
||||
"title": "Instance Privacy",
|
||||
"privacyInformation": privacyInfoArray,
|
||||
})
|
||||
}
|
|
@ -98,6 +98,7 @@ func Serve() {
|
|||
app.Static("/robots.txt", "./public/robots.txt", staticConfig)
|
||||
app.Static("/favicon.ico", "./public/assets/favicon.ico", staticConfig)
|
||||
app.Static("/logo.svg", "./public/assets/logo.svg", staticConfig)
|
||||
app.Get("/privacy", pages.HandlePrivacy)
|
||||
app.Get("/explore", ratelimiter, pages.HandleExplore)
|
||||
app.Get("/:user", pages.HandleUser)
|
||||
app.Get("/avatar/:id", func(c *fiber.Ctx) error {
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<a href="/" style="text-decoration: none;" class="brand"><img src="/logo.svg" class="navbarImg" height="30" width="30" alt=""><b class="navbarSlogan">GotHub (alpha)</b></a>
|
||||
<div class="navbarLinks">
|
||||
<a href="/explore">Explore</a>
|
||||
<a href="/privacy">Privacy</a>
|
||||
<a href="https://codeberg.org/gothub/gothub">Source code</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{{template "header" .}}
|
||||
|
||||
<main>
|
||||
<h2>Instance Privacy</h2>
|
||||
{{ if .privacyInformation}}
|
||||
{{ range $key, $value := .privacyInformation}}
|
||||
<p>The goal of this page is to bring transparency to the data collected by the instances and to encourage privacy friendly practices.</p>
|
||||
<p>If this page isn't filled, please contact your instance's maintainer.</p>
|
||||
<p><b>IP Address logged:</b> {{.IPAddr}}</p>
|
||||
<p><b>Request URL logged:</b> {{.ReqURL}}</p>
|
||||
<p><b>User Agent logged:</b> {{.UserAgent}}</p>
|
||||
<p><b>Diagnostic Information logged:</b> {{.Diagnostics}}</p>
|
||||
{{ if .PrivacyPolicy }}
|
||||
<p>You can see the maintainer's <a href=//{{.PrivacyPolicy}}>Privacy Policy</a> for more information.</p>
|
||||
{{end}}
|
||||
<h3>Additional Information</h3>
|
||||
<p>GotHub version: <a href="https://codeberg.org/gothub/gothub/commit/{{.Version}}"><code>{{.Version}}</code></a></p>
|
||||
<p>Fiber version: {{ .FiberVersion}}, running on {{ .GoVersion}}</p>
|
||||
<p>Country: {{.Country}}</p>
|
||||
<p>Cloudflare: {{.Cloudflare}}</p>
|
||||
<p>ISP: {{.Provider}}</p>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</main>
|
読み込み中…
新しいイシューから参照