Import a forgejo docker config.

This commit is contained in:
root 2025-03-09 21:43:17 -04:00
parent e8b30a1b0f
commit 308889be5f
4 changed files with 116 additions and 5 deletions

View file

@ -22,13 +22,22 @@
"navidrome": {
"enable": "true",
"provider": "docker",
"src": "deluan/navidrome",
"ports": [ "4533:4533" ],
"volumes": [
"/data/docker/navidrome:/data",
"/data/music:/music:ro"
]
}
},
"forgejo": {
"enable": "true",
"provider": "docker",
"volumes": [
"/data/docker/forgejo:/data",
],
"config": {
"db": "postgres",
"db_path": "/data/docker/forgejo/postgres",
},
},
}
}

View file

@ -100,7 +100,7 @@ func main() {
case *os.PathError:
// No system config to merge
// Rely solely on the user config
fmt.Println(" Warning: No system config for service" + name)
fmt.Println(" Warning: No system config for service: " + name)
default:
fmt.Println("Error reading service config: ", err)
return
@ -120,7 +120,7 @@ func main() {
config.System.Packages = append(config.System.Packages, s.Packages...)
}
// Generate a config file
// Generate service config files
for _, f := range s.ConfigFiles {
var b strings.Builder
f := strings.Split(f, ":")

View file

@ -0,0 +1,14 @@
{
ports: ["3000:3000", "222:22"],
volumes: [
"/etc/timezone:/etc/timezone:ro",
"/etc/localtime:/etc/localtime:ro",
],
provider: "docker",
packages: [],
src: "codeberg.org/forgejo/forgejo:10",
configFiles: [
"forgejo.template:/services/docker/forgejo.json",
]
}

View file

@ -0,0 +1,88 @@
{
"networks": {
"forgejo": {
"external": false
}
},
"services": {
"server": {
"image": "{{.Src}}",
"container_name": "forgejo",
"environment": [
"USER_UID=1000",
"USER_GID=1000",
{{if eq .Config.db "mysql"}}
FORGEJO__database__DB_TYPE=mysql,
FORGEJO__database__HOST=db:3306,
FORGEJO__database__NAME=forgejo,
FORGEJO__database__USER=forgejo,
FORGEJO__database__PASSWD=forgejo,
{{end}}
{{if eq .Config.db "postgres"}}
FORGEJO__database__DB_TYPE=postgres,
FORGEJO__database__HOST=db:5432,
FORGEJO__database__NAME=forgejo,
FORGEJO__database__USER=forgejo,
FORGEJO__database__PASSWD=forgejo,
{{end}}
],
{{with .Config.Restart}}"restart": "{{.}}",{{end}}
"networks": [
"forgejo"
],
"volumes": [
{{range .Volumes}}
"{{.}}",
{{end}}
],
"ports": [
{{range .Ports}}
"{{.}}",
{{end}}
],
{{if .Config.db}}
"depends_on": [
"db"
],
{{end}}
},
{{if eq .Config.db "mysql"}}
"db": {
"image": "mysql:8",
"restart": "always",
"environment": [
"MYSQL_ROOT_PASSWORD=forgejo",
"MYSQL_USER=forgejo",
"MYSQL_PASSWORD=forgejo",
"MYSQL_DATABASE=forgejo"
],
"networks": [
"forgejo"
],
"volumes": [
"{{.Config.db_path}}:/var/lib/mysql"
]
},
{{end}}
{{if eq .Config.db "postgres"}}
"db": {
"image": "postgres:14",
"restart": "always",
"environment": [
"POSTGRES_USER=forgejo",
"POSTGRES_PASSWORD=forgejo",
"POSTGRES_DB=forgejo"
],
"networks": [
"forgejo"
],
"volumes": [
"{{.Config.db_path}}:/var/lib/postgresql/data"
]
},
{{end}}
}
}