Rename to Segfautils
Signed-off-by: Odyssey346 <odyssey346@disroot.org>
This commit is contained in:
parent
68e2c6475e
commit
2f6fbed9c0
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@ -26,4 +26,4 @@ jobs:
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: true
|
||||
tags: projectsegfault/segfautilities:latest
|
||||
tags: projectsegfault/segfautils:latest
|
14
Dockerfile
14
Dockerfile
@ -1,15 +1,15 @@
|
||||
FROM golang:1.18-alpine3.16
|
||||
|
||||
ENV SEGFAUTILITIES_PORT 6893
|
||||
ENV SEGFAUTILS_PORT 6893
|
||||
|
||||
RUN mkdir /segfautilities
|
||||
WORKDIR /segfautilities
|
||||
COPY . /segfautilities/
|
||||
RUN mkdir /segfautils
|
||||
WORKDIR /segfautils
|
||||
COPY . /segfautils/
|
||||
RUN go mod download
|
||||
|
||||
EXPOSE 6893
|
||||
|
||||
RUN go build -o segfautilities
|
||||
RUN chmod +x segfautilities
|
||||
RUN go build -o segfautils
|
||||
RUN chmod +x segfautils
|
||||
RUN go clean -modcache
|
||||
CMD ["./segfautilities"]
|
||||
CMD ["./segfautils"]
|
14
api/form.go
14
api/form.go
@ -1,24 +1,24 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/kataras/hcaptcha"
|
||||
|
||||
"os"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"net/url"
|
||||
"io"
|
||||
"net/url"
|
||||
|
||||
"github.com/ProjectSegfault/segfautilities/otherthings"
|
||||
"github.com/ProjectSegfault/segfautils/otherthings"
|
||||
)
|
||||
|
||||
var (
|
||||
siteKey = os.Getenv("HCAPTCHA_SITE_KEY")
|
||||
secretKey = os.Getenv("HCAPTCHA_SECRET_KEY")
|
||||
webhookURL = os.Getenv("SEGFAUTILITIES_WEBHOOK_URL")
|
||||
webhookURL = os.Getenv("SEGFAUTILS_WEBHOOK_URL")
|
||||
client = hcaptcha.New(secretKey) /* See `Client.FailureHandler` too. */
|
||||
)
|
||||
|
||||
@ -48,9 +48,9 @@ func theActualFormCode(w http.ResponseWriter, r *http.Request) {
|
||||
"content": {"IP " + otherthings.GetUserIP(r) + "\nFrom " + r.FormValue("email") + " with feedback type " + r.FormValue("commentType") + ":\n" + "**" + r.FormValue("message") + "**\n https://abuseipdb.com/check/" + otherthings.GetUserIP(r)},
|
||||
}
|
||||
if r.FormValue("webhook") != "" {
|
||||
fmt.Fprintf(w, "\nThanks for trying Segfautilities Contact Form :)")
|
||||
fmt.Fprintf(w, "\nThanks for trying Segfautils Contact Form :)")
|
||||
postData := url.Values{
|
||||
"content": {"**Note: you are currently testing our form example. Please check out the actual project at https://github.com/ProjectSegfault/segfautilities! It's not hard to self-host :)**\n" + "IP " + otherthings.GetUserIP(r) + "\nFrom " + r.FormValue("email") + " with feedback type " + r.FormValue("commentType") + ":\n" + "**" + r.FormValue("message") + "**\n https://abuseipdb.com/check/" + otherthings.GetUserIP(r)},
|
||||
"content": {"**Note: you are currently testing our form example. Please check out the actual project at https://github.com/ProjectSegfault/segfautils if you found this neat! It's not hard to self-host :)**\n" + "IP " + otherthings.GetUserIP(r) + "\nFrom " + r.FormValue("email") + " with feedback type " + r.FormValue("commentType") + ":\n" + "**" + r.FormValue("message") + "**\n https://abuseipdb.com/check/" + otherthings.GetUserIP(r)},
|
||||
}
|
||||
req, err := http.PostForm(r.FormValue("webhook"), postData)
|
||||
if err != nil {
|
||||
|
@ -1,3 +1,3 @@
|
||||
HCAPTCHA_SITE_KEY=YOURSITEKEY
|
||||
HCAPTCHA_SECRET_KEY=YOURSECRETKEY
|
||||
SEGFAUTILITIES_WEBHOOK_URL=YOURWEBHOOKURL
|
||||
SEGFAUTILS_WEBHOOK_URL=YOURWEBHOOKURL
|
||||
|
2
go.mod
2
go.mod
@ -1,4 +1,4 @@
|
||||
module github.com/ProjectSegfault/segfautilities
|
||||
module github.com/ProjectSegfault/segfautils
|
||||
|
||||
go 1.18
|
||||
|
||||
|
11
main.go
11
main.go
@ -1,13 +1,14 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"html/template"
|
||||
"io"
|
||||
"log"
|
||||
"github.com/ProjectSegfault/segfautilities/otherthings"
|
||||
"net/http"
|
||||
"os"
|
||||
"github.com/ProjectSegfault/segfautilities/api"
|
||||
|
||||
"github.com/ProjectSegfault/segfautils/api"
|
||||
"github.com/ProjectSegfault/segfautils/otherthings"
|
||||
)
|
||||
|
||||
type StaticThingy struct {
|
||||
@ -19,10 +20,10 @@ var port string
|
||||
var shit bool
|
||||
|
||||
func main() {
|
||||
log.Println("[Segfautilities] Starting")
|
||||
log.Println("[Segfautils] Starting")
|
||||
otherthings.CheckEnv()
|
||||
log.Println("[HTTP] Starting server")
|
||||
port := os.Getenv("SEGFAUTILITIES_PORT")
|
||||
port := os.Getenv("SEGFAUTILS_PORT")
|
||||
hcaptcha_site_key := os.Getenv("HCAPTCHA_SITE_KEY")
|
||||
tmpl := template.Must(template.ParseFiles("static/index.html"))
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -2,8 +2,8 @@
|
||||
package otherthings
|
||||
|
||||
import (
|
||||
"os"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -12,29 +12,29 @@ var (
|
||||
)
|
||||
|
||||
func CheckEnv() {
|
||||
unused, ok1 = os.LookupEnv("SEGFAUTILITIES_PORT")
|
||||
unused, ok1 = os.LookupEnv("SEGFAUTILS_PORT")
|
||||
if ok1 {
|
||||
log.Println("[Segfautilities] Environment variable SEGFAUTILITIES_PORT is set as " + unused)
|
||||
log.Println("[Segfautils] Environment variable SEGFAUTILS_PORT is set as " + unused)
|
||||
} else {
|
||||
log.Fatal("[Segfautilities] Environment variable SEGFAUTILITIES_PORT is not set! Please set it to a number, for example 6893")
|
||||
log.Fatal("[Segfautils] Environment variable SEGFAUTILS_PORT is not set! Please set it to a number, for example 6893")
|
||||
}
|
||||
unused, ok1 = os.LookupEnv("HCAPTCHA_SITE_KEY")
|
||||
if !ok1 || unused == "YOURSITEKEY" {
|
||||
log.Fatal("[Segfautilities] Environment variable HCAPTCHA_SITE_KEY is not set! Please set it to the site key you got from hCaptcha.")
|
||||
log.Fatal("[Segfautils] Environment variable HCAPTCHA_SITE_KEY is not set! Please set it to the site key you got from hCaptcha.")
|
||||
} else {
|
||||
log.Println("[Segfautilities] Environment variable HCAPTCHA_SITE_KEY is set as " + unused)
|
||||
log.Println("[Segfautils] Environment variable HCAPTCHA_SITE_KEY is set as " + unused)
|
||||
}
|
||||
unused, ok1 = os.LookupEnv("HCAPTCHA_SECRET_KEY")
|
||||
if !ok1 || unused == "YOURSECRETKEY" {
|
||||
log.Fatal("[Segfautilities] Environment variable HCAPTCHA_SECRET_KEY is not set! Please set it to the secret key you got from hCaptcha.")
|
||||
log.Fatal("[Segfautils] Environment variable HCAPTCHA_SECRET_KEY is not set! Please set it to the secret key you got from hCaptcha.")
|
||||
} else {
|
||||
log.Println("[Segfautilities] Environment variable HCAPTCHA_SECRET_KEY is set!")
|
||||
log.Println("[Segfautils] Environment variable HCAPTCHA_SECRET_KEY is set!")
|
||||
}
|
||||
unused, ok1 = os.LookupEnv("SEGFAUTILITIES_WEBHOOK_URL")
|
||||
unused, ok1 = os.LookupEnv("SEGFAUTILS_WEBHOOK_URL")
|
||||
if !ok1 || unused == "YOURWEBHOOKURL" {
|
||||
log.Fatal("[Segfautilities] Environment variable SEGFAUTILITIES_WEBHOOK_URL is not set! Please set it to your webhook URL. If that URL doesn't work, make an issue on GitHub!")
|
||||
log.Fatal("[Segfautils] Environment variable SEGFAUTILS_WEBHOOK_URL is not set! Please set it to your webhook URL. If that URL doesn't work, make an issue on GitHub!")
|
||||
} else {
|
||||
log.Println("[Segfautilities] Environment variable SEGFAUTILITIES_WEBHOOK_URL is set!")
|
||||
log.Println("[Segfautils] Environment variable SEGFAUTILS_WEBHOOK_URL is set!")
|
||||
}
|
||||
log.Println("[Segfautilities] ✅ Passed the Environment Variables check")
|
||||
log.Println("[Segfautils] ✅ Passed the Environment Variables check")
|
||||
}
|
27
readme.md
27
readme.md
@ -1,4 +1,4 @@
|
||||
# Segfautilities
|
||||
# Segfautils
|
||||
Web utilities for Project Segfault
|
||||
|
||||
## What does it do?
|
||||
@ -8,27 +8,30 @@ For now it powers our contact form. In the future we will expand our APIs so you
|
||||
|
||||
### Docker:
|
||||
```
|
||||
docker run -d --restart=always -p 6893:6893 --name segfautilities projectsegfault/segfautilities:latest --env-file ./docker.env
|
||||
docker run -d --restart=always -p 6893:6893 --name segfautils projectsegfault/segfautils:latest --env-file ./docker.env
|
||||
```
|
||||
docker.env should be the environment file located in this repository, customized to your settings. The env file is self-documenting so I don't need to go in any detail here.
|
||||
|
||||
|
||||
We recommend using Docker as it provides better security (we suck in security, so that's why) and we are constantly updating Segfautilities. Docker makes it easy to update the program.
|
||||
We recommend using Docker as it provides better security (we suck in security, so that's why) and we are constantly updating Segfautils. Docker makes it easy to update the program.
|
||||
|
||||
If you're using Portainer, you should know how to add Segfautilities.
|
||||
If you're using Portainer, you should know how to add Segfautils.
|
||||
|
||||
### Manual (recommended for development)
|
||||
```
|
||||
git clone https://github.com/ProjectSegfault/segfautilities
|
||||
cd segfautilities/
|
||||
# You need to add the environment HCAPTCHA_SITE_KEY, HCAPTCHA_SECRET_KEY, SEGFAUTILITIES_WEBHOOK_URL and SEGFAUTILITIES_PORT.
|
||||
go run main.go # Run this when you've done above!
|
||||
git clone https://github.com/ProjectSegfault/segfautils
|
||||
cd segfautils/
|
||||
# You need to add the environment HCAPTCHA_SITE_KEY, HCAPTCHA_SECRET_KEY, SEGFAUTILS_WEBHOOK_URL and SEGFAUTILS_PORT.
|
||||
go run main.go # Run this when you've done above, and you're planning on developing, if not, do below
|
||||
go build . -o segfautils
|
||||
./segfautils
|
||||
```
|
||||
#### NixOS
|
||||
```
|
||||
git clone https://github.com/ProjectSegfault/segfautilities
|
||||
cd segfautilities/
|
||||
git clone https://github.com/ProjectSegfault/segfautils
|
||||
cd segfautils/
|
||||
nix-shell # Avoid installing Go and setting up the web port, by just running a nix shell
|
||||
# You still need the environment variables HCAPTCHA_SITE_KEY, HCAPTCHA_SECRET_KEY and SEGFAUTILITIES_WEBHOOK_URL though!
|
||||
go run main.go # I wonder if this is good practice or not. If this isn't good practice, make a GitHub issue please.
|
||||
# You still need the environment variables HCAPTCHA_SITE_KEY, HCAPTCHA_SECRET_KEY and SEGFAUTILS_WEBHOOK_URL though!
|
||||
go run main.go # If you're developing
|
||||
go build . -o segfautils && ./segfautils # If you're intending to use Segfautils for production.
|
||||
```
|
||||
|
@ -6,7 +6,7 @@ pkgs.mkShell {
|
||||
pkgs.go
|
||||
];
|
||||
shellHook = ''
|
||||
export SEGFAUTILITIES_PORT=6893
|
||||
export SEGFAUTILS_PORT=6893
|
||||
echo "Go installed, have your fun"
|
||||
'';
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Segfautilites form implementation example</title>
|
||||
<title>Segfautils form implementation example</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #252525;
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Segfautilites</title>
|
||||
<title>Segfautils</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #252525;
|
||||
@ -21,7 +21,7 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Welcome to Segfautilities</h1>
|
||||
<h3>Running at port {{.Port}} | <a href="https://github.com/ProjectSegfault/segfautilities/" target="_blank">GitHub</a></h3>
|
||||
<h1>Welcome to Segfautils</h1>
|
||||
<h3>Running at port {{.Port}} | <a href="https://github.com/ProjectSegfault/segfautils/" target="_blank">GitHub</a></h3>
|
||||
<h3><a href="/form">Click here for an example form implementation</a></h3>
|
||||
</body>
|
Reference in New Issue
Block a user