a
This commit is contained in:
commit
5e5addeac6
11 changed files with 192 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
terraform.tfvars.json
|
||||||
|
.terraform
|
13
README.md
Normal file
13
README.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
## How to add new tailscale client
|
||||||
|
|
||||||
|
On client:
|
||||||
|
|
||||||
|
```
|
||||||
|
tailscale up --login-server https://mzhang.io:15851
|
||||||
|
```
|
||||||
|
|
||||||
|
On server:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo /path/to/headscale nodes register --user michael --key <key>
|
||||||
|
```
|
6
main.tf
Normal file
6
main.tf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
module "gitea" {
|
||||||
|
source = "./services/gitea"
|
||||||
|
providers = {
|
||||||
|
nomad = nomad
|
||||||
|
}
|
||||||
|
}
|
4
providers.tf
Normal file
4
providers.tf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
provider "nomad" {
|
||||||
|
address = "http://apps2.tail98468.ts.net:4646"
|
||||||
|
region = "us-east-2"
|
||||||
|
}
|
5
services/caddy/conf/caddy.nomad.hcl
Normal file
5
services/caddy/conf/caddy.nomad.hcl
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
job "caddy" {
|
||||||
|
group "proxy" {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
6
services/caddy/job.tf
Normal file
6
services/caddy/job.tf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
resource "nomad_job" "app" {
|
||||||
|
jobspec = templatefile("${path.module}/conf/caddy.nomad.hcl", {
|
||||||
|
# caddyfile_internal = data.template_file.caddyfile-internal.rendered
|
||||||
|
caddyfile_public = data.template_file.caddyfile-public.rendered
|
||||||
|
})
|
||||||
|
}
|
122
services/gitea/conf/app.ini.tpl
Normal file
122
services/gitea/conf/app.ini.tpl
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
; This file lists the default values used by Gitea
|
||||||
|
; Sample file: https://github.com/go-gitea/gitea/blob/master/custom/conf/app.example.ini
|
||||||
|
; Docs: https://docs.gitea.io/en-us/config-cheat-sheet/
|
||||||
|
|
||||||
|
APP_NAME = Michael's Forge
|
||||||
|
RUN_MODE = prod
|
||||||
|
RUN_USER = git
|
||||||
|
|
||||||
|
[repository]
|
||||||
|
ROOT = /data/git/repositories
|
||||||
|
|
||||||
|
[repository.local]
|
||||||
|
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
|
||||||
|
|
||||||
|
[repository.upload]
|
||||||
|
TEMP_PATH = /data/gitea/uploads
|
||||||
|
|
||||||
|
[server]
|
||||||
|
APP_DATA_PATH = /data/gitea
|
||||||
|
DOMAIN = git2.mrkaran.dev
|
||||||
|
SSH_DOMAIN = koadings.mrkaran.dev
|
||||||
|
HTTP_PORT = 3000
|
||||||
|
ROOT_URL = https://git2.mrkaran.dev/
|
||||||
|
DISABLE_SSH = false
|
||||||
|
SSH_PORT = 4222
|
||||||
|
SSH_LISTEN_PORT = 22
|
||||||
|
LFS_START_SERVER = true
|
||||||
|
LFS_CONTENT_PATH = /data/git/lfs
|
||||||
|
LFS_JWT_SECRET = "${gitea_lfs_jwt_secret}"
|
||||||
|
OFFLINE_MODE = true
|
||||||
|
LANDING_PAGE = explore
|
||||||
|
|
||||||
|
[ui]
|
||||||
|
THEME_COLOR_META_TAG = "#6B46C1"
|
||||||
|
|
||||||
|
[ui.meta]
|
||||||
|
AUTHOR = Karan
|
||||||
|
DESCRIPTION = Karan's self-hosted Gitea instance
|
||||||
|
KEYWORDS = git, gitea, karan, git.mrkaran.dev, mrkaran
|
||||||
|
|
||||||
|
[database]
|
||||||
|
PATH = /data/gitea/gitea.db
|
||||||
|
DB_TYPE = sqlite3
|
||||||
|
HOST = localhost:3306
|
||||||
|
NAME = gitea
|
||||||
|
USER = root
|
||||||
|
PASSWD =
|
||||||
|
SCHEMA =
|
||||||
|
SSL_MODE = disable
|
||||||
|
CHARSET = utf8
|
||||||
|
|
||||||
|
[indexer]
|
||||||
|
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
|
||||||
|
|
||||||
|
[session]
|
||||||
|
PROVIDER_CONFIG = /data/gitea/sessions
|
||||||
|
PROVIDER = file
|
||||||
|
COOKIE_SECURE = true
|
||||||
|
|
||||||
|
[picture]
|
||||||
|
AVATAR_UPLOAD_PATH = /data/gitea/avatars
|
||||||
|
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
|
||||||
|
DISABLE_GRAVATAR = false
|
||||||
|
ENABLE_FEDERATED_AVATAR = true
|
||||||
|
|
||||||
|
[attachment]
|
||||||
|
PATH = /data/gitea/attachments
|
||||||
|
|
||||||
|
[log]
|
||||||
|
ROOT_PATH = /data/gitea/log
|
||||||
|
MODE = file
|
||||||
|
LEVEL = info
|
||||||
|
|
||||||
|
[security]
|
||||||
|
INSTALL_LOCK = true
|
||||||
|
SECRET_KEY = "${gitea_secret_key}"
|
||||||
|
INTERNAL_TOKEN = "${gitea_internal_token}"
|
||||||
|
|
||||||
|
[service]
|
||||||
|
DISABLE_REGISTRATION = true
|
||||||
|
REQUIRE_SIGNIN_VIEW = false
|
||||||
|
REGISTER_EMAIL_CONFIRM = false
|
||||||
|
ENABLE_NOTIFY_MAIL = false
|
||||||
|
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
|
||||||
|
ENABLE_CAPTCHA = false
|
||||||
|
DEFAULT_KEEP_EMAIL_PRIVATE = false
|
||||||
|
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
|
||||||
|
DEFAULT_ENABLE_TIMETRACKING = true
|
||||||
|
NO_REPLY_ADDRESS = noreply.localhost
|
||||||
|
|
||||||
|
[oauth2]
|
||||||
|
JWT_SECRET = "${gitea_oauth2_jwt_secret}"
|
||||||
|
|
||||||
|
[mailer]
|
||||||
|
ENABLED = false
|
||||||
|
|
||||||
|
[openid]
|
||||||
|
ENABLE_OPENID_SIGNIN = true
|
||||||
|
ENABLE_OPENID_SIGNUP = true
|
||||||
|
|
||||||
|
[metrics]
|
||||||
|
ENABLED = true
|
||||||
|
|
||||||
|
[cron]
|
||||||
|
ENABLED = true
|
||||||
|
RUN_AT_START = false
|
||||||
|
|
||||||
|
[cron.archive_cleanup]
|
||||||
|
RUN_AT_START = true
|
||||||
|
SCHEDULE = @every 24h
|
||||||
|
OLDER_THAN = 24h
|
||||||
|
|
||||||
|
[cron.update_mirrors]
|
||||||
|
SCHEDULE = @every 3h
|
||||||
|
|
||||||
|
[cron.repo_health_check]
|
||||||
|
SCHEDULE = @every 24h
|
||||||
|
TIMEOUT = 60s
|
||||||
|
|
||||||
|
[cron.check_repo_stats]
|
||||||
|
RUN_AT_START = true
|
||||||
|
SCHEDULE = @every 24h
|
13
services/gitea/conf/gitea.nomad.hcl
Normal file
13
services/gitea/conf/gitea.nomad.hcl
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
job "gitea" {
|
||||||
|
group "app" {
|
||||||
|
network {
|
||||||
|
port "http" {
|
||||||
|
to = 3000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
task "web" {
|
||||||
|
driver = "docker"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
services/gitea/data.tf
Normal file
9
services/gitea/data.tf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
data "template_file" "gitea-config" {
|
||||||
|
template = file("${path.module}/conf/app.ini.tpl")
|
||||||
|
vars = {
|
||||||
|
gitea_secret_key = var.gitea_secret_key
|
||||||
|
gitea_internal_token = var.gitea_internal_token
|
||||||
|
gitea_lfs_jwt_secret = var.gitea_lfs_jwt_secret
|
||||||
|
gitea_oauth2_jwt_secret = var.gitea_oauth2_jwt_secret
|
||||||
|
}
|
||||||
|
}
|
5
services/gitea/job.tf
Normal file
5
services/gitea/job.tf
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
resource "nomad_job" "app" {
|
||||||
|
jobspec = templatefile("${path.module}/conf/gitea.nomad.hcl", {
|
||||||
|
gitea_config = data.template_file.gitea-config.rendered
|
||||||
|
})
|
||||||
|
}
|
7
services/gitea/providers.tf
Normal file
7
services/gitea/providers.tf
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
nomad = {
|
||||||
|
source = "hashicorp/nomad"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue