Compare commits
2 Commits
a5cb82d3fa
...
93b5c3f110
| Author | SHA1 | Date | |
|---|---|---|---|
| 93b5c3f110 | |||
| 0dc3add8ff |
@@ -61,8 +61,10 @@ RUN mkdir -p /app/data
|
|||||||
# Expose the default port
|
# Expose the default port
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
|
# Set environment variable defaults
|
||||||
|
ENV AETHERA_LISTEN=0.0.0.0
|
||||||
|
ENV AETHERA_PORT=8080
|
||||||
|
ENV AETHERA_DATA_DIR=/app/data
|
||||||
|
|
||||||
# Set the entrypoint
|
# Set the entrypoint
|
||||||
ENTRYPOINT ["./aethera"]
|
ENTRYPOINT ["./aethera"]
|
||||||
|
|
||||||
# Default command with recommended production settings
|
|
||||||
CMD ["--listen", "0.0.0.0", "--port", "8080", "--data-dir", "/app/data"]
|
|
||||||
|
|||||||
@@ -4,8 +4,11 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const envPrefix = "AETHERA_"
|
||||||
|
|
||||||
type cliParams struct {
|
type cliParams struct {
|
||||||
ListenAddr string
|
ListenAddr string
|
||||||
ListenPort int
|
ListenPort int
|
||||||
@@ -13,6 +16,24 @@ type cliParams struct {
|
|||||||
SettingsFile string
|
SettingsFile string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getEnvOrDefault returns the value of an environment variable or a default value
|
||||||
|
func getEnvOrDefault(key, defaultValue string) string {
|
||||||
|
if value := os.Getenv(envPrefix + key); value != "" {
|
||||||
|
return value
|
||||||
|
}
|
||||||
|
return defaultValue
|
||||||
|
}
|
||||||
|
|
||||||
|
// getEnvIntOrDefault returns the integer value of an environment variable or a default value
|
||||||
|
func getEnvIntOrDefault(key string, defaultValue int) int {
|
||||||
|
if value := os.Getenv(envPrefix + key); value != "" {
|
||||||
|
if intVal, err := strconv.Atoi(value); err == nil {
|
||||||
|
return intVal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return defaultValue
|
||||||
|
}
|
||||||
|
|
||||||
func (p *cliParams) Validate() error {
|
func (p *cliParams) Validate() error {
|
||||||
// Ensure Generated Directories
|
// Ensure Generated Directories
|
||||||
imgDir := path.Join(p.DataDir, "generated/images")
|
imgDir := path.Join(p.DataDir, "generated/images")
|
||||||
|
|||||||
@@ -13,17 +13,17 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
params = cliParams{
|
params = cliParams{
|
||||||
ListenAddr: "localhost",
|
ListenAddr: getEnvOrDefault("LISTEN", "localhost"),
|
||||||
ListenPort: 8080,
|
ListenPort: getEnvIntOrDefault("PORT", 8080),
|
||||||
DataDir: "./data",
|
DataDir: getEnvOrDefault("DATA_DIR", "./data"),
|
||||||
}
|
}
|
||||||
rootCmd = &cobra.Command{Use: "aethera"}
|
rootCmd = &cobra.Command{Use: "aethera"}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.PersistentFlags().StringVar(¶ms.DataDir, "data-dir", "data", "Directory to store generated images")
|
rootCmd.PersistentFlags().StringVar(¶ms.DataDir, "data-dir", params.DataDir, "Directory to store generated images (env: AETHERA_DATA_DIR)")
|
||||||
rootCmd.PersistentFlags().StringVar(¶ms.ListenAddr, "listen", "localhost", "Address to listen on")
|
rootCmd.PersistentFlags().StringVar(¶ms.ListenAddr, "listen", params.ListenAddr, "Address to listen on (env: AETHERA_LISTEN)")
|
||||||
rootCmd.PersistentFlags().IntVar(¶ms.ListenPort, "port", 8080, "Port to listen on")
|
rootCmd.PersistentFlags().IntVar(¶ms.ListenPort, "port", params.ListenPort, "Port to listen on (env: AETHERA_PORT)")
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
Reference in New Issue
Block a user