Make server listen address configurable via flags

To improve the flexibility and configurability of the server, add a
`listen` flag to specify the server's listen address. This replaces
the hardcoded `localhost:3002` string.

This change addresses the need for configuring the server address
dynamically, facilitating easier deployment and testing.

Resolves: #8
This commit is contained in:
patwie
2024-06-10 09:20:00 +00:00
parent 257e46d2c8
commit 5ae64e7aca
2 changed files with 9 additions and 10 deletions
+6 -7
View File
@@ -58,10 +58,9 @@ docker build -t exalidraw-ui-build excalidraw -f ui-build.Dockerfile
docker run -v ${PWD}/:/pwd/ -it exalidraw-ui-build cp -r /frontend /pwd docker run -v ${PWD}/:/pwd/ -it exalidraw-ui-build cp -r /frontend /pwd
``` ```
(Optional) Replace `localhost:3002` inside of `main.go` with your domain name if you want to use a reverse proxy (Optional) Replace `localhost:3002` inside of `main.go` with your domain name if you want to use a reverse proxy
(Optional) Replace `"ssl=!0", "ssl=0"` with `"ssl=!0", "ssl=1"` if you want to use HTTPS (Optional) Replace `"ssl=!0", "ssl=0"` with `"ssl=!0", "ssl=1"` if you want to use HTTPS
(Optional) Replace `"ssl:!0", "ssl:0"` with `"ssl:!0", "ssl:1"` if you want to use HTTPS (Optional) Replace `"ssl:!0", "ssl:0"` with `"ssl:!0", "ssl:1"` if you want to use HTTPS
(Optional) Change ip:port of Go webserver at the end of `main.go` if you want to customize it
Compile the Go application: Compile the Go application:
@@ -75,10 +74,10 @@ Example: `STORAGE_TYPE=sqlite DATA_SOURCE_NAME=/tmp/excalidb.sqlite`
Start the server: Start the server:
```bash ```bash
go run main.go go run main.go --listen=":3002"
STORAGE_TYPE=sqlite DATA_SOURCE_NAME=test.db go run main.go --loglevel debug STORAGE_TYPE=sqlite DATA_SOURCE_NAME=test.db go run main.go --loglevel debug --listen=":3002"
STORAGE_TYPE=filesystem LOCAL_STORAGE_PATH=/tmp/excalidraw/ go run main.go --loglevel debug STORAGE_TYPE=filesystem LOCAL_STORAGE_PATH=/tmp/excalidraw/ go run main.go --loglevel debug --listen=":3002"
``` ```
Excalidraw Complete is now running on your machine, ready to bring your collaborative whiteboard ideas to life. Excalidraw Complete is now running on your machine, ready to bring your collaborative whiteboard ideas to life.
+3 -3
View File
@@ -244,6 +244,7 @@ func waitForShutdown(ioo *socketio.Server) {
func main() { func main() {
// Define a log level flag // Define a log level flag
logLevel := flag.String("loglevel", "info", "Set the logging level: debug, info, warn, error, fatal, panic") logLevel := flag.String("loglevel", "info", "Set the logging level: debug, info, warn, error, fatal, panic")
listenAddr := flag.String("listen", ":3002", "Set the server listen address")
flag.Parse() flag.Parse()
// Set the log level // Set the log level
@@ -266,10 +267,9 @@ func main() {
}) })
r.Mount("/", handleUI()) r.Mount("/", handleUI())
addr := ":3002" logrus.WithField("addr", *listenAddr).Info("starting server")
logrus.WithField("addr", addr).Info("starting server")
go func() { go func() {
if err := http.ListenAndServe(addr, r); err != nil { if err := http.ListenAndServe(*listenAddr, r); err != nil {
logrus.WithField("event", "start server").Fatal(err) logrus.WithField("event", "start server").Fatal(err)
} }
}() }()