Files
herolib/lib/installers/infra/gitea/server.v
Mahmoud Emad d7efbeb53f fix: correct typo in Gitea SMTP port configuration
- Corrected a typo in the Gitea SMTP port configuration
- across multiple files: `gitea.vsh`, `gitea_model.v`,
- `server.v`, and `app.ini`.  The incorrect `smpt_port`
- was changed to the correct `smtp_port`.

Co-authored-by: mariobassem12 <mariobassem12@gmail.com>
2025-01-08 14:04:29 +02:00

209 lines
5.8 KiB
Verilog

module gitea
// import freeflowuniverse.herolib.osal
// import freeflowuniverse.herolib.osal.zinit
// import freeflowuniverse.herolib.data.dbfs
// import freeflowuniverse.herolib.core.texttools
// import freeflowuniverse.herolib.core.pathlib
// import freeflowuniverse.herolib.installers.db.postgresql
// import json
// import rand
// import os
// import time
// import freeflowuniverse.herolib.ui.console
// // @[params]
// // pub struct Config {
// // pub mut:
// // name string = 'default'
// // reset bool
// // path string = '/data/gitea'
// // passwd string
// // postgresql_name string = 'default'
// // mail_from string = 'git@meet.tf'
// // smtp_addr string = 'smtp-relay.brevo.com'
// // smtp_login string @[required]
// // smtp_port int = 587
// // smtp_passwd string
// // domain string @[required]
// // jwt_secret string
// // lfs_jwt_secret string
// // internal_token string
// // secret_key string
// // }
// // pub struct Server {
// // pub mut:
// // name string
// // config GiteaServer
// // process ?zinit.ZProcess
// // path_config pathlib.Path
// // }
// // get the gitea server
// //```js
// // name string = 'default'
// // path string = '/data/gitea'
// // passwd string
// //```
// // if name exists already in the config DB, it will load for that name
// // pub fn new_server(args_ GiteaServer) !Server {
// // install()! // make sure it has been build & ready to be used
// // mut args := args_
// // if args.passwd == '' {
// // args.passwd = rand.string(12)
// // }
// // args.name = texttools.name_fix(args.name)
// // key := 'gitea_config_${args.name}'
// // mut kvs := dbfs.new(name: 'config')!
// // if !kvs.exists(key) {
// // // jwt_secret string
// // // lfs_jwt_secret string
// // // internal_token string
// // // secret_key string
// // if args.jwt_secret == '' {
// // r := os.execute_or_panic('gitea generate secret JWT_SECRET')
// // args.jwt_secret = r.output.trim_space()
// // }
// // if args.lfs_jwt_secret == '' {
// // r := os.execute_or_panic('gitea generate secret LFS_JWT_SECRET')
// // args.lfs_jwt_secret = r.output.trim_space()
// // }
// // if args.internal_token == '' {
// // r := os.execute_or_panic('gitea generate secret INTERNAL_TOKEN')
// // args.internal_token = r.output.trim_space()
// // }
// // if args.secret_key == '' {
// // r := os.execute_or_panic('gitea generate secret SECRET_KEY')
// // args.secret_key = r.output.trim_space()
// // }
// // data := json.encode(args)
// // kvs.set(key, data)!
// // }
// // return get_server(args.name)!
// // }
// // pub fn get_server(name_ string) !Server {
// // console.print_header('get gitea server ${name_}')
// // name := texttools.name_fix(name_)
// // key := 'gitea_config_${name}'
// // mut kvs := dbfs.new(name: 'config')!
// // if kvs.exists(key) {
// // data := kvs.get(key)!
// // args := json.decode(Config, data)!
// // mut server := Server{
// // name: name
// // config: args
// // path_config: pathlib.get_dir(path: '${args.path}/cfg', create: true)!
// // }
// // mut z := zinit.new()!
// // processname := 'gitea_${name}'
// // if z.process_exists(processname) {
// // server.process = z.process_get(processname)!
// // }
// // // console.print_debug(" - server get ok")
// // server.start()!
// // return server
// // }
// // return error("can't find server gitea with name ${name}")
// // }
// // // return status
// // // ```
// // // pub enum ZProcessStatus {
// // // unknown
// // // init
// // // ok
// // // error
// // // blocked
// // // spawned
// // // }
// // // ```
// pub fn (mut server GiteaServer) status() zinit.ZProcessStatus {
// mut process := server.process or { return .unknown }
// return process.status() or { return .unknown }
// }
// // run gitea as docker compose
// pub fn (mut server GiteaServer) start() ! {
// // if server.ok(){
// // return
// // }
// console.print_header('start gitea: ${server.name}')
// mut db := postgresql.get(server.config.postgresql_name)!
// // now create the DB
// db.db_create('gitea')!
// // if true{
// // panic("sd")
// // }
// // TODO: postgresql can be on other server, need to fill in all arguments in template
// t1 := $tmpl('templates/app.ini')
// mut config_path := server.path_config.file_get_new('app.ini')!
// config_path.write(t1)!
// // osal.user_add(name: 'git')!
// // osal.exec(
// // cmd: '
// // chown -R git:root ${server.config.path}
// // chmod -R 777 /usr/local/bin
// // '
// // )!
// mut z := zinit.new()!
// processname := 'gitea_${server.name}'
// mut p := z.process_new(
// name: processname
// cmd: '
// /bin/bash -c "gitea --config ${config_path.path}"
// '
// )!
// p.output_wait('Starting new Web server: tcp:0.0.0.0:3000', 120)!
// o := p.log()!
// console.print_debug(o)
// server.check()!
// console.print_header('gitea start ok.')
// }
// pub fn (mut server GiteaServer) restart() ! {
// server.stop()!
// server.start()!
// }
// pub fn (mut server GiteaServer) stop() ! {
// console.print_header('stop gitea: ${server.name}')
// mut process := server.process or { return }
// return process.stop()
// }
// // check health, return true if ok
// pub fn (mut server GiteaServer) check() ! {
// mut p := server.process or { return error("can't find process for server.") }
// p.check()!
// // TODO: need to do some other checks to gitea e.g. rest calls
// }
// // check health, return true if ok
// pub fn (mut server GiteaServer) ok() bool {
// server.check() or { return false }
// return true
// }
// // remove all data
// pub fn (mut server GiteaServer) destroy() ! {
// server.stop()!
// server.path_config.delete()!
// }