add themes and get_theme_list function and will add to ini file
moved fetch to library and called download improved run commanad with set_env function added upgrade script added systemd scripts and refactored service file added ini-gen function and separate call via ini-gen scriptmaster
parent
b5a902ef93
commit
b4f1093b03
|
@ -3,3 +3,4 @@
|
||||||
/gitea.pid
|
/gitea.pid
|
||||||
/bin/amd64/custom/
|
/bin/amd64/custom/
|
||||||
/frontend/current/
|
/frontend/current/
|
||||||
|
*.bin
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
; This file lists the default values used by Gitea
|
;################################################################
|
||||||
; Copy required sections to your own app.ini (default is custom/conf/app.ini)
|
;# THIS FILE IS GENERATED. Do not edit directly #
|
||||||
; and modify as needed.
|
;# It was created from /opt/gitea/config/3115.tmpl #
|
||||||
|
;# Edit this file and run with -t or run ini-gen to regenerate #
|
||||||
|
;################################################################
|
||||||
|
; This file lists the sets values used by Gitea and can be edited
|
||||||
|
; it is a good idea to use a versioning system or make a backup before editing
|
||||||
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
||||||
|
;
|
||||||
; App name that shows in every page title
|
; App name that shows in every page title
|
||||||
APP_NAME = McCarty Git Server on Frodo
|
APP_NAME = McCarty Git Server on Frodo
|
||||||
; Change it if you run locally
|
; Change it if you run locally
|
||||||
|
@ -177,7 +182,7 @@ SHOW_USER_EMAIL = true
|
||||||
; Set the default theme for the Gitea install
|
; Set the default theme for the Gitea install
|
||||||
DEFAULT_THEME = arc-green
|
DEFAULT_THEME = arc-green
|
||||||
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
||||||
THEMES = gitea,arc-green,dark-blue,github,werefox,42l-dark,42l-light
|
THEMES = 42l-dark,42l-light,aquamarine,chroma,dark-blue,dark,gitea-base,github,hotline,organizr-dark,plex,space-gray,werefox,gitea,arc_green
|
||||||
; All available reactions users can choose on issues/prs and comments.
|
; All available reactions users can choose on issues/prs and comments.
|
||||||
; Values can be emoji alias (:smile:) or a unicode emoji.
|
; Values can be emoji alias (:smile:) or a unicode emoji.
|
||||||
; For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
; For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
; This file lists the default values used by Gitea
|
; This file lists the sets values used by Gitea and can be edited
|
||||||
; Copy required sections to your own app.ini (default is custom/conf/app.ini)
|
; it is a good idea to use a versioning system or make a backup before editing
|
||||||
; and modify as needed.
|
|
||||||
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
||||||
|
;
|
||||||
; App name that shows in every page title
|
; App name that shows in every page title
|
||||||
APP_NAME = McCarty Git Server on Frodo
|
APP_NAME = McCarty Git Server on Frodo
|
||||||
; Change it if you run locally
|
; Change it if you run locally
|
||||||
|
@ -177,7 +177,7 @@ SHOW_USER_EMAIL = true
|
||||||
; Set the default theme for the Gitea install
|
; Set the default theme for the Gitea install
|
||||||
DEFAULT_THEME = arc-green
|
DEFAULT_THEME = arc-green
|
||||||
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
||||||
THEMES = gitea,arc-green,dark-blue,github,werefox,42l-dark,42l-light
|
THEMES = aquamarine,gitea,arc-green,dark-blue,github,werefox,42l-dark,42l-light
|
||||||
; All available reactions users can choose on issues/prs and comments.
|
; All available reactions users can choose on issues/prs and comments.
|
||||||
; Values can be emoji alias (:smile:) or a unicode emoji.
|
; Values can be emoji alias (:smile:) or a unicode emoji.
|
||||||
; For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
; For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
||||||
|
|
|
@ -1,24 +1,23 @@
|
||||||
; This file lists the default values used by Gitea
|
; you can copy this example template file to your instance use
|
||||||
; Copy required sections to your own app.ini (default is custom/conf/app.ini)
|
; This file lists the sets values used by Gitea and can be edited
|
||||||
; and modify as needed.
|
; it is a good idea to use a versioning system or make a backup before editing
|
||||||
|
|
||||||
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
; see https://docs.gitea.io/en-us/config-cheat-sheet/ for additional documentation.
|
||||||
|
;
|
||||||
; App name that shows in every page title
|
; App name that shows in every page title
|
||||||
APP_NAME = Gitea: Git with a cup of tea
|
APP_NAME = McCarty Git Server on Frodo
|
||||||
; Change it if you run locally
|
; Change it if you run locally
|
||||||
RUN_USER = git
|
RUN_USER = sysadmin
|
||||||
; Either "dev", "prod" or "test", default is "dev"
|
; Either "dev", "prod" or "test", default is "dev"
|
||||||
RUN_MODE = dev
|
RUN_MODE = prod
|
||||||
|
|
||||||
[repository]
|
[repository]
|
||||||
ROOT =
|
ROOT = @@_server_dir/repos
|
||||||
SCRIPT_TYPE = bash
|
SCRIPT_TYPE = bash
|
||||||
; DETECTED_CHARSETS_ORDER tie-break order for detected charsets.
|
; DETECTED_CHARSETS_ORDER tie-break order for detected charsets.
|
||||||
; If the charsets have equal confidence, tie-breaking will be done by order in this list
|
; If the charsets have equal confidence, tie-breaking will be done by order in this list
|
||||||
; with charsets earlier in the list chosen in preference to those later.
|
; with charsets earlier in the list chosen in preference to those later.
|
||||||
; Adding "defaults" will place the unused charsets at that position.
|
; Adding "defaults" will place the unused charsets at that position.
|
||||||
DETECTED_CHARSETS_ORDER=UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, ISO-8859, windows-1252, ISO-8859, windows-1250, ISO-8859, ISO-8859, ISO-8859, windows-1253, ISO-8859, windows-1255, ISO-8859, windows-1251, windows-1256, KOI8-R, ISO-8859, windows-1254, Shift_JIS, GB18030, EUC-JP, EUC-KR, Big5, ISO-2022, ISO-2022, ISO-2022, IBM424_rtl, IBM424_ltr, IBM420_rtl, IBM420_ltr
|
DETECTED_CHARSETS_ORDER = UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, ISO-8859, windows-1252, ISO-8859, windows-1250, ISO-8859, ISO-8859, ISO-8859, windows-1253, ISO-8859, windows-1255, ISO-8859, windows-1251, windows-1256, KOI8-R, ISO-8859, windows-1254, Shift_JIS, GB18030, EUC-JP, EUC-KR, Big5, ISO-2022, ISO-2022, ISO-2022, IBM424_rtl, IBM424_ltr, IBM420_rtl, IBM420_ltr
|
||||||
; Default ANSI charset to override non-UTF-8 charsets to
|
; Default ANSI charset to override non-UTF-8 charsets to
|
||||||
ANSI_CHARSET =
|
ANSI_CHARSET =
|
||||||
; Force every new repository to be private
|
; Force every new repository to be private
|
||||||
|
@ -58,7 +57,7 @@ PREFIX_ARCHIVE_FILES = true
|
||||||
; Disable the creation of new mirrors. Pre-existing mirrors remain valid.
|
; Disable the creation of new mirrors. Pre-existing mirrors remain valid.
|
||||||
DISABLE_MIRRORS = false
|
DISABLE_MIRRORS = false
|
||||||
; The default branch name of new repositories
|
; The default branch name of new repositories
|
||||||
DEFAULT_BRANCH=master
|
DEFAULT_BRANCH = master
|
||||||
|
|
||||||
[repository.editor]
|
[repository.editor]
|
||||||
; List of file extensions for which lines should be wrapped in the Monaco editor
|
; List of file extensions for which lines should be wrapped in the Monaco editor
|
||||||
|
@ -88,25 +87,25 @@ MAX_FILES = 5
|
||||||
|
|
||||||
[repository.pull-request]
|
[repository.pull-request]
|
||||||
; List of prefixes used in Pull Request title to mark them as Work In Progress
|
; List of prefixes used in Pull Request title to mark them as Work In Progress
|
||||||
WORK_IN_PROGRESS_PREFIXES=WIP:,[WIP]
|
WORK_IN_PROGRESS_PREFIXES = WIP:,[WIP]
|
||||||
; List of keywords used in Pull Request comments to automatically close a related issue
|
; List of keywords used in Pull Request comments to automatically close a related issue
|
||||||
CLOSE_KEYWORDS=close,closes,closed,fix,fixes,fixed,resolve,resolves,resolved
|
CLOSE_KEYWORDS = close,closes,closed,fix,fixes,fixed,resolve,resolves,resolved
|
||||||
; List of keywords used in Pull Request comments to automatically reopen a related issue
|
; List of keywords used in Pull Request comments to automatically reopen a related issue
|
||||||
REOPEN_KEYWORDS=reopen,reopens,reopened
|
REOPEN_KEYWORDS = reopen,reopens,reopened
|
||||||
; In the default merge message for squash commits include at most this many commits
|
; In the default merge message for squash commits include at most this many commits
|
||||||
DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT=50
|
DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT = 50
|
||||||
; In the default merge message for squash commits limit the size of the commit messages to this
|
; In the default merge message for squash commits limit the size of the commit messages to this
|
||||||
DEFAULT_MERGE_MESSAGE_SIZE=5120
|
DEFAULT_MERGE_MESSAGE_SIZE = 5120
|
||||||
; In the default merge message for squash commits walk all commits to include all authors in the Co-authored-by otherwise just use those in the limited list
|
; In the default merge message for squash commits walk all commits to include all authors in the Co-authored-by otherwise just use those in the limited list
|
||||||
DEFAULT_MERGE_MESSAGE_ALL_AUTHORS=false
|
DEFAULT_MERGE_MESSAGE_ALL_AUTHORS = false
|
||||||
; In default merge messages limit the number of approvers listed as Reviewed-by: to this many
|
; In default merge messages limit the number of approvers listed as Reviewed-by: to this many
|
||||||
DEFAULT_MERGE_MESSAGE_MAX_APPROVERS=10
|
DEFAULT_MERGE_MESSAGE_MAX_APPROVERS = 10
|
||||||
; In default merge messages only include approvers who are official
|
; In default merge messages only include approvers who are official
|
||||||
DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY=true
|
DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY = true
|
||||||
|
|
||||||
[repository.issue]
|
[repository.issue]
|
||||||
; List of reasons why a Pull Request or Issue can be locked
|
; List of reasons why a Pull Request or Issue can be locked
|
||||||
LOCK_REASONS=Too heated,Off-topic,Resolved,Spam
|
LOCK_REASONS = Too heated,Off-topic,Resolved,Spam
|
||||||
|
|
||||||
[repository.signing]
|
[repository.signing]
|
||||||
; GPG key to use to sign commits, Defaults to the default - that is the value of git config --get user.signingkey
|
; GPG key to use to sign commits, Defaults to the default - that is the value of git config --get user.signingkey
|
||||||
|
@ -143,19 +142,19 @@ MERGES = pubkey, twofa, basesigned, commitssigned
|
||||||
[cors]
|
[cors]
|
||||||
; More information about CORS can be found here: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#The_HTTP_response_headers
|
; More information about CORS can be found here: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#The_HTTP_response_headers
|
||||||
; enable cors headers (disabled by default)
|
; enable cors headers (disabled by default)
|
||||||
ENABLED=false
|
ENABLED = false
|
||||||
; scheme of allowed requests
|
; scheme of allowed requests
|
||||||
SCHEME=http
|
SCHEME = http
|
||||||
; list of requesting domains that are allowed
|
; list of requesting domains that are allowed
|
||||||
ALLOW_DOMAIN=*
|
ALLOW_DOMAIN = *
|
||||||
; allow subdomains of headers listed above to request
|
; allow subdomains of headers listed above to request
|
||||||
ALLOW_SUBDOMAIN=false
|
ALLOW_SUBDOMAIN = false
|
||||||
; list of methods allowed to request
|
; list of methods allowed to request
|
||||||
METHODS=GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
|
METHODS = GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
|
||||||
; max time to cache response
|
; max time to cache response
|
||||||
MAX_AGE=10m
|
MAX_AGE = 10m
|
||||||
; allow request with credentials
|
; allow request with credentials
|
||||||
ALLOW_CREDENTIALS=false
|
ALLOW_CREDENTIALS = false
|
||||||
|
|
||||||
[ui]
|
[ui]
|
||||||
; Number of repositories that are displayed on one explore page
|
; Number of repositories that are displayed on one explore page
|
||||||
|
@ -177,12 +176,12 @@ MAX_DISPLAY_FILE_SIZE = 8388608
|
||||||
; Whether the email of the user should be shown in the Explore Users page
|
; Whether the email of the user should be shown in the Explore Users page
|
||||||
SHOW_USER_EMAIL = true
|
SHOW_USER_EMAIL = true
|
||||||
; Set the default theme for the Gitea install
|
; Set the default theme for the Gitea install
|
||||||
DEFAULT_THEME = gitea
|
DEFAULT_THEME = arc-green
|
||||||
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
; All available themes. Allow users select personalized themes regardless of the value of `DEFAULT_THEME`.
|
||||||
THEMES = gitea,arc-green
|
THEMES = aquamarine,gitea,arc-green,dark-blue,github,werefox,42l-dark,42l-light
|
||||||
;All available reactions users can choose on issues/prs and comments.
|
; All available reactions users can choose on issues/prs and comments.
|
||||||
;Values can be emoji alias (:smile:) or a unicode emoji.
|
; Values can be emoji alias (:smile:) or a unicode emoji.
|
||||||
;For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
; For custom reactions, add a tightly cropped square image to public/emoji/img/reaction_name.png
|
||||||
REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes
|
REACTIONS = +1, -1, laugh, hooray, confused, heart, rocket, eyes
|
||||||
; Whether the full name of the users should be shown where possible. If the full name isn't set, the username will be used.
|
; Whether the full name of the users should be shown where possible. If the full name isn't set, the username will be used.
|
||||||
DEFAULT_SHOW_FULL_NAME = false
|
DEFAULT_SHOW_FULL_NAME = false
|
||||||
|
@ -206,8 +205,8 @@ ORG_PAGING_NUM = 50
|
||||||
REPO_PAGING_NUM = 15
|
REPO_PAGING_NUM = 15
|
||||||
|
|
||||||
[ui.meta]
|
[ui.meta]
|
||||||
AUTHOR = Gitea - Git with a cup of tea
|
AUTHOR = kebler
|
||||||
DESCRIPTION = Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go
|
DESCRIPTION = kebler.net git organizations
|
||||||
KEYWORDS = go,git,self-hosted,gitea
|
KEYWORDS = go,git,self-hosted,gitea
|
||||||
|
|
||||||
[ui.notification]
|
[ui.notification]
|
||||||
|
@ -241,7 +240,7 @@ FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
|
||||||
; The protocol the server listens on. One of 'http', 'https', 'unix' or 'fcgi'.
|
; The protocol the server listens on. One of 'http', 'https', 'unix' or 'fcgi'.
|
||||||
PROTOCOL = http
|
PROTOCOL = http
|
||||||
DOMAIN = localhost
|
DOMAIN = localhost
|
||||||
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
|
ROOT_URL = https://git.3115.kebler.net/
|
||||||
; when STATIC_URL_PREFIX is empty it will follow ROOT_URL
|
; when STATIC_URL_PREFIX is empty it will follow ROOT_URL
|
||||||
STATIC_URL_PREFIX =
|
STATIC_URL_PREFIX =
|
||||||
; The address to listen on. Either a IPv4/IPv6 address or the path to a unix socket.
|
; The address to listen on. Either a IPv4/IPv6 address or the path to a unix socket.
|
||||||
|
@ -268,7 +267,7 @@ START_SSH_SERVER = false
|
||||||
; Username to use for the builtin SSH server. If blank, then it is the value of RUN_USER.
|
; Username to use for the builtin SSH server. If blank, then it is the value of RUN_USER.
|
||||||
BUILTIN_SSH_SERVER_USER =
|
BUILTIN_SSH_SERVER_USER =
|
||||||
; Domain name to be exposed in clone URL
|
; Domain name to be exposed in clone URL
|
||||||
SSH_DOMAIN = %(DOMAIN)s
|
SSH_DOMAIN = localhost
|
||||||
; The network interface the builtin SSH server should listen on
|
; The network interface the builtin SSH server should listen on
|
||||||
SSH_LISTEN_HOST =
|
SSH_LISTEN_HOST =
|
||||||
; Port number to be exposed in clone URL
|
; Port number to be exposed in clone URL
|
||||||
|
@ -328,13 +327,13 @@ ENABLE_PPROF = false
|
||||||
PPROF_DATA_PATH = data/tmp/pprof
|
PPROF_DATA_PATH = data/tmp/pprof
|
||||||
; Landing page, can be "home", "explore", "organizations" or "login"
|
; Landing page, can be "home", "explore", "organizations" or "login"
|
||||||
; The "login" choice is not a security measure but just a UI flow change, use REQUIRE_SIGNIN_VIEW to force users to log in.
|
; The "login" choice is not a security measure but just a UI flow change, use REQUIRE_SIGNIN_VIEW to force users to log in.
|
||||||
LANDING_PAGE = home
|
LANDING_PAGE = organizations
|
||||||
; Enables git-lfs support. true or false, default is false.
|
; Enables git-lfs support. true or false, default is false.
|
||||||
LFS_START_SERVER = false
|
LFS_START_SERVER = true
|
||||||
; Where your lfs files reside, default is data/lfs.
|
; Where your lfs files reside, default is data/lfs.
|
||||||
LFS_CONTENT_PATH = data/lfs
|
LFS_CONTENT_PATH = @@_server_dir/files
|
||||||
; LFS authentication secret, change this yourself
|
; LFS authentication secret, change this yourself
|
||||||
LFS_JWT_SECRET =
|
LFS_JWT_SECRET = 8TJnYipfl_sw9aMzwIjhwGTJzrSB1n9deL_vqOThNdg
|
||||||
; LFS authentication validity period (in time.Duration), pushes taking longer than this may fail.
|
; LFS authentication validity period (in time.Duration), pushes taking longer than this may fail.
|
||||||
LFS_HTTP_AUTH_EXPIRY = 20m
|
LFS_HTTP_AUTH_EXPIRY = 20m
|
||||||
; Maximum allowed LFS file size in bytes (Set to 0 for no limit).
|
; Maximum allowed LFS file size in bytes (Set to 0 for no limit).
|
||||||
|
@ -359,27 +358,34 @@ ED25519 = 256
|
||||||
ECDSA = 256
|
ECDSA = 256
|
||||||
RSA = 2048
|
RSA = 2048
|
||||||
DSA = 1024
|
DSA = 1024
|
||||||
|
DB_TYPE = sqlite3
|
||||||
|
HOST = 127.0.0.1:3306
|
||||||
|
NAME = gitea
|
||||||
|
USER = gitea
|
||||||
|
PASSWD =
|
||||||
|
SSL_MODE = disable
|
||||||
|
PATH = db/git.db
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
; Database to use. Either "mysql", "postgres", "mssql" or "sqlite3".
|
; Database to use. Either "mysql", "postgres", "mssql" or "sqlite3".
|
||||||
DB_TYPE = mysql
|
DB_TYPE = sqlite3
|
||||||
HOST = 127.0.0.1:3306
|
HOST = 127.0.0.1:3306
|
||||||
NAME = gitea
|
; NAME = gitea
|
||||||
USER = root
|
; USER = root
|
||||||
; Use PASSWD = `your password` for quoting if you use special characters in the password.
|
; Use PASSWD = `your password` for quoting if you use special characters in the password.
|
||||||
PASSWD =
|
; PASSWD =
|
||||||
; For Postgres, schema to use if different from "public". The schema must exist beforehand,
|
; For Postgres, schema to use if different from "public". The schema must exist beforehand,
|
||||||
; the user must have creation privileges on it, and the user search path must be set
|
; the user must have creation privileges on it, and the user search path must be set
|
||||||
; to the look into the schema first. e.g.:ALTER USER user SET SEARCH_PATH = schema_name,"$user",public;
|
; to the look into the schema first. e.g.:ALTER USER user SET SEARCH_PATH = schema_name,"$user",public;
|
||||||
SCHEMA =
|
; SCHEMA =
|
||||||
; For Postgres, either "disable" (default), "require", or "verify-full"
|
; For Postgres, either "disable" (default), "require", or "verify-full"
|
||||||
; For MySQL, either "false" (default), "true", or "skip-verify"
|
; For MySQL, either "false" (default), "true", or "skip-verify"
|
||||||
SSL_MODE = disable
|
; SSL_MODE = disable
|
||||||
; For MySQL only, either "utf8" or "utf8mb4", default is "utf8mb4".
|
; For MySQL only, either "utf8" or "utf8mb4", default is "utf8mb4".
|
||||||
; NOTICE: for "utf8mb4" you must use MySQL InnoDB > 5.6. Gitea is unable to check this.
|
; NOTICE: for "utf8mb4" you must use MySQL InnoDB > 5.6. Gitea is unable to check this.
|
||||||
CHARSET = utf8mb4
|
; CHARSET = utf8mb4
|
||||||
; For "sqlite3" and "tidb", use an absolute path when you start gitea as service
|
; For "sqlite3" and "tidb", use an absolute path when you start gitea as service
|
||||||
PATH = data/gitea.db
|
PATH = @@_server_dir/db/git.db
|
||||||
; For "sqlite3" only. Query timeout
|
; For "sqlite3" only. Query timeout
|
||||||
SQLITE_TIMEOUT = 500
|
SQLITE_TIMEOUT = 500
|
||||||
; For iterate buffer, default is 50
|
; For iterate buffer, default is 50
|
||||||
|
@ -396,6 +402,12 @@ MAX_IDLE_CONNS = 2
|
||||||
CONN_MAX_LIFETIME = 3s
|
CONN_MAX_LIFETIME = 3s
|
||||||
; Database maximum number of open connections, default is 0 meaning no maximum
|
; Database maximum number of open connections, default is 0 meaning no maximum
|
||||||
MAX_OPEN_CONNS = 0
|
MAX_OPEN_CONNS = 0
|
||||||
|
NAME =
|
||||||
|
USER =
|
||||||
|
PASSWD =
|
||||||
|
SCHEMA =
|
||||||
|
SSL_MODE = disable
|
||||||
|
CHARSET = utf8
|
||||||
|
|
||||||
[indexer]
|
[indexer]
|
||||||
; Issue indexer type, currently support: bleve, db or elasticsearch, default is bleve
|
; Issue indexer type, currently support: bleve, db or elasticsearch, default is bleve
|
||||||
|
@ -405,23 +417,22 @@ ISSUE_INDEXER_CONN_STR = http://elastic:changeme@localhost:9200
|
||||||
; Issue indexer name, available when ISSUE_INDEXER_TYPE is elasticsearch
|
; Issue indexer name, available when ISSUE_INDEXER_TYPE is elasticsearch
|
||||||
ISSUE_INDEXER_NAME = gitea_issues
|
ISSUE_INDEXER_NAME = gitea_issues
|
||||||
; Issue indexer storage path, available when ISSUE_INDEXER_TYPE is bleve
|
; Issue indexer storage path, available when ISSUE_INDEXER_TYPE is bleve
|
||||||
ISSUE_INDEXER_PATH = indexers/issues.bleve
|
ISSUE_INDEXER_PATH = @@_server_dir/indexers/issues.bleve
|
||||||
; Issue indexer queue, currently support: channel, levelqueue or redis, default is levelqueue
|
; Issue indexer queue, currently support: channel, levelqueue or redis, default is levelqueue
|
||||||
ISSUE_INDEXER_QUEUE_TYPE = levelqueue
|
ISSUE_INDEXER_QUEUE_TYPE = levelqueue
|
||||||
; When ISSUE_INDEXER_QUEUE_TYPE is levelqueue, this will be the queue will be saved path,
|
; When ISSUE_INDEXER_QUEUE_TYPE is levelqueue, this will be the queue will be saved path,
|
||||||
; default is indexers/issues.queue
|
; default is indexers/issues.queue
|
||||||
ISSUE_INDEXER_QUEUE_DIR = indexers/issues.queue
|
ISSUE_INDEXER_QUEUE_DIR = @@_server_dir/indexers/issues.queue
|
||||||
; When `ISSUE_INDEXER_QUEUE_TYPE` is `redis`, this will store the redis connection string.
|
; When `ISSUE_INDEXER_QUEUE_TYPE` is `redis`, this will store the redis connection string.
|
||||||
ISSUE_INDEXER_QUEUE_CONN_STR = "addrs=127.0.0.1:6379 db=0"
|
ISSUE_INDEXER_QUEUE_CONN_STR = addrs=127.0.0.1:6379 db=0
|
||||||
; Batch queue number, default is 20
|
; Batch queue number, default is 20
|
||||||
ISSUE_INDEXER_QUEUE_BATCH_NUMBER = 20
|
ISSUE_INDEXER_QUEUE_BATCH_NUMBER = 20
|
||||||
; Timeout the indexer if it takes longer than this to start.
|
; Timeout the indexer if it takes longer than this to start.
|
||||||
; Set to zero to disable timeout.
|
; Set to zero to disable timeout.
|
||||||
STARTUP_TIMEOUT=30s
|
STARTUP_TIMEOUT = 30s
|
||||||
|
|
||||||
; repo indexer by default disabled, since it uses a lot of disk space
|
; repo indexer by default disabled, since it uses a lot of disk space
|
||||||
REPO_INDEXER_ENABLED = false
|
REPO_INDEXER_ENABLED = false
|
||||||
REPO_INDEXER_PATH = indexers/repos.bleve
|
REPO_INDEXER_PATH = @@_server_dir/indexers/repos.bleve
|
||||||
UPDATE_BUFFER_LEN = 20
|
UPDATE_BUFFER_LEN = 20
|
||||||
MAX_FILE_SIZE = 1048576
|
MAX_FILE_SIZE = 1048576
|
||||||
; A comma separated list of glob patterns (see https://github.com/gobwas/glob) to include
|
; A comma separated list of glob patterns (see https://github.com/gobwas/glob) to include
|
||||||
|
@ -437,15 +448,15 @@ REPO_INDEXER_EXCLUDE =
|
||||||
; default to persistable-channel
|
; default to persistable-channel
|
||||||
TYPE = persistable-channel
|
TYPE = persistable-channel
|
||||||
; data-dir for storing persistable queues and level queues, individual queues will be named by their type
|
; data-dir for storing persistable queues and level queues, individual queues will be named by their type
|
||||||
DATADIR = queues/
|
DATADIR = @@_server_dir/queues
|
||||||
; Default queue length before a channel queue will block
|
; Default queue length before a channel queue will block
|
||||||
LENGTH = 20
|
LENGTH = 20
|
||||||
; Batch size to send for batched queues
|
; Batch size to send for batched queues
|
||||||
BATCH_LENGTH = 20
|
BATCH_LENGTH = 20
|
||||||
; Connection string for redis queues this will store the redis connection string.
|
; Connection string for redis queues this will store the redis connection string.
|
||||||
CONN_STR = "addrs=127.0.0.1:6379 db=0"
|
CONN_STR = addrs=127.0.0.1:6379 db=0
|
||||||
; Provide the suffix of the default redis queue name - specific queues can be overriden within in their [queue.name] sections.
|
; Provide the suffix of the default redis queue name - specific queues can be overriden within in their [queue.name] sections.
|
||||||
QUEUE_NAME = "_queue"
|
QUEUE_NAME = _queue
|
||||||
; If the queue cannot be created at startup - level queues may need a timeout at startup - wrap the queue:
|
; If the queue cannot be created at startup - level queues may need a timeout at startup - wrap the queue:
|
||||||
WRAP_IF_NECESSARY = true
|
WRAP_IF_NECESSARY = true
|
||||||
; Attempt to create the wrapped queue at max
|
; Attempt to create the wrapped queue at max
|
||||||
|
@ -471,9 +482,10 @@ DEFAULT_EMAIL_NOTIFICATIONS = enabled
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
; Whether the installer is disabled
|
; Whether the installer is disabled
|
||||||
INSTALL_LOCK = false
|
INSTALL_LOCK = true
|
||||||
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
|
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
|
||||||
SECRET_KEY = !#@FDEWREWR&*(
|
# @FDEWREWR&*(
|
||||||
|
SECRET_KEY = hcsA6WS81j91zmILHzZQMEJJM1eghsAksm8hRPPmQttqWRMcDDe887iNzPTDYTaq
|
||||||
; How long to remember that a user is logged in before requiring relogin (in days)
|
; How long to remember that a user is logged in before requiring relogin (in days)
|
||||||
LOGIN_REMEMBER_DAYS = 7
|
LOGIN_REMEMBER_DAYS = 7
|
||||||
COOKIE_USERNAME = gitea_awesome
|
COOKIE_USERNAME = gitea_awesome
|
||||||
|
@ -489,14 +501,15 @@ IMPORT_LOCAL_PATHS = false
|
||||||
DISABLE_GIT_HOOKS = false
|
DISABLE_GIT_HOOKS = false
|
||||||
; Set to false to allow pushes to gitea repositories despite having an incomplete environment - NOT RECOMMENDED
|
; Set to false to allow pushes to gitea repositories despite having an incomplete environment - NOT RECOMMENDED
|
||||||
ONLY_ALLOW_PUSH_IF_GITEA_ENVIRONMENT_SET = true
|
ONLY_ALLOW_PUSH_IF_GITEA_ENVIRONMENT_SET = true
|
||||||
;Comma separated list of character classes required to pass minimum complexity.
|
; Comma separated list of character classes required to pass minimum complexity.
|
||||||
;If left empty or no valid values are specified, the default values ("lower,upper,digit,spec") will be used.
|
; If left empty or no valid values are specified, the default values ("lower,upper,digit,spec") will be used.
|
||||||
;Use "off" to disable checking.
|
; Use "off" to disable checking.
|
||||||
PASSWORD_COMPLEXITY = lower,upper,digit,spec
|
PASSWORD_COMPLEXITY = lower,upper,digit,spec
|
||||||
; Password Hash algorithm, either "pbkdf2", "argon2", "scrypt" or "bcrypt"
|
; Password Hash algorithm, either "pbkdf2", "argon2", "scrypt" or "bcrypt"
|
||||||
PASSWORD_HASH_ALGO = pbkdf2
|
PASSWORD_HASH_ALGO = pbkdf2
|
||||||
; Set false to allow JavaScript to read CSRF cookie
|
; Set false to allow JavaScript to read CSRF cookie
|
||||||
CSRF_COOKIE_HTTP_ONLY = true
|
CSRF_COOKIE_HTTP_ONLY = true
|
||||||
|
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1OTY3MzM5Mjl9.htwld4l5AgQ_7zaa1hEE3yBSfq50mWdP3VoE5xT6blc
|
||||||
|
|
||||||
[openid]
|
[openid]
|
||||||
;
|
;
|
||||||
|
@ -520,7 +533,7 @@ CSRF_COOKIE_HTTP_ONLY = true
|
||||||
ENABLE_OPENID_SIGNIN = true
|
ENABLE_OPENID_SIGNIN = true
|
||||||
; Whether to allow registering via OpenID
|
; Whether to allow registering via OpenID
|
||||||
; Do not include to rely on rhw DISABLE_REGISTRATION setting
|
; Do not include to rely on rhw DISABLE_REGISTRATION setting
|
||||||
;ENABLE_OPENID_SIGNUP = true
|
; ENABLE_OPENID_SIGNUP = true
|
||||||
; Allowed URI patterns (POSIX regexp).
|
; Allowed URI patterns (POSIX regexp).
|
||||||
; Space separated.
|
; Space separated.
|
||||||
; Only these would be allowed if non-blank.
|
; Only these would be allowed if non-blank.
|
||||||
|
@ -531,6 +544,7 @@ WHITELISTED_URIS =
|
||||||
; Only used if WHITELISTED_URIS is blank.
|
; Only used if WHITELISTED_URIS is blank.
|
||||||
; Example value: loadaverage.org/badguy stackexchange.com/.*spammer
|
; Example value: loadaverage.org/badguy stackexchange.com/.*spammer
|
||||||
BLACKLISTED_URIS =
|
BLACKLISTED_URIS =
|
||||||
|
ENABLE_OPENID_SIGNUP = true
|
||||||
|
|
||||||
[service]
|
[service]
|
||||||
; Time limit to confirm account/email registration
|
; Time limit to confirm account/email registration
|
||||||
|
@ -541,7 +555,7 @@ RESET_PASSWD_CODE_LIVE_MINUTES = 180
|
||||||
REGISTER_EMAIL_CONFIRM = false
|
REGISTER_EMAIL_CONFIRM = false
|
||||||
; List of domain names that are allowed to be used to register on a Gitea instance
|
; List of domain names that are allowed to be used to register on a Gitea instance
|
||||||
; gitea.io,example.com
|
; gitea.io,example.com
|
||||||
EMAIL_DOMAIN_WHITELIST=
|
EMAIL_DOMAIN_WHITELIST =
|
||||||
; Disallow registration, only allow admins to create accounts.
|
; Disallow registration, only allow admins to create accounts.
|
||||||
DISABLE_REGISTRATION = false
|
DISABLE_REGISTRATION = false
|
||||||
; Allow registration only using third-party services, it works only when DISABLE_REGISTRATION is false
|
; Allow registration only using third-party services, it works only when DISABLE_REGISTRATION is false
|
||||||
|
@ -697,13 +711,13 @@ COMMITS_COUNT = 1000
|
||||||
|
|
||||||
[session]
|
[session]
|
||||||
; Either "memory", "file", or "redis", default is "memory"
|
; Either "memory", "file", or "redis", default is "memory"
|
||||||
PROVIDER = memory
|
PROVIDER = file
|
||||||
; Provider config options
|
; Provider config options
|
||||||
; memory: doesn't have any config yet
|
; memory: doesn't have any config yet
|
||||||
; file: session file path, e.g. `data/sessions`
|
; file: session file path, e.g. `data/sessions`
|
||||||
; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
|
; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
|
||||||
; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
|
; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
|
||||||
PROVIDER_CONFIG = data/sessions
|
PROVIDER_CONFIG = @@_server_dir/sessions
|
||||||
; Session cookie name
|
; Session cookie name
|
||||||
COOKIE_NAME = i_like_gitea
|
COOKIE_NAME = i_like_gitea
|
||||||
; If you use session in https only, default is false
|
; If you use session in https only, default is false
|
||||||
|
@ -716,8 +730,8 @@ GC_INTERVAL_TIME = 86400
|
||||||
SESSION_LIFE_TIME = 86400
|
SESSION_LIFE_TIME = 86400
|
||||||
|
|
||||||
[picture]
|
[picture]
|
||||||
AVATAR_UPLOAD_PATH = data/avatars
|
AVATAR_UPLOAD_PATH = @@_server_dir/data/avatars
|
||||||
REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-avatars
|
REPOSITORY_AVATAR_UPLOAD_PATH = @@_server_dir/data/repo-avatars
|
||||||
; How Gitea deals with missing repository avatars
|
; How Gitea deals with missing repository avatars
|
||||||
; none = no avatar will be displayed; random = random avatar will be displayed; image = default image will be used
|
; none = no avatar will be displayed; random = random avatar will be displayed; image = default image will be used
|
||||||
REPOSITORY_AVATAR_FALLBACK = none
|
REPOSITORY_AVATAR_FALLBACK = none
|
||||||
|
@ -743,7 +757,7 @@ ENABLE_FEDERATED_AVATAR = false
|
||||||
; Whether attachments are enabled. Defaults to `true`
|
; Whether attachments are enabled. Defaults to `true`
|
||||||
ENABLED = true
|
ENABLED = true
|
||||||
; Path for attachments. Defaults to `data/attachments`
|
; Path for attachments. Defaults to `data/attachments`
|
||||||
PATH = data/attachments
|
PATH = @@_server_dir/data/attachments
|
||||||
; One or more allowed types, e.g. "image/jpeg|image/png". Use "*/*" for all types.
|
; One or more allowed types, e.g. "image/jpeg|image/png". Use "*/*" for all types.
|
||||||
ALLOWED_TYPES = image/jpeg|image/png|application/zip|application/gzip
|
ALLOWED_TYPES = image/jpeg|image/png|application/zip|application/gzip
|
||||||
; Max size of each file. Defaults to 4MB
|
; Max size of each file. Defaults to 4MB
|
||||||
|
@ -761,10 +775,10 @@ FORMAT =
|
||||||
DEFAULT_UI_LOCATION =
|
DEFAULT_UI_LOCATION =
|
||||||
|
|
||||||
[log]
|
[log]
|
||||||
ROOT_PATH =
|
ROOT_PATH = @@_server_dir/log
|
||||||
; Either "console", "file", "conn", "smtp" or "database", default is "console"
|
; Either "console", "file", "conn", "smtp" or "database", default is "console"
|
||||||
; Use comma to separate multiple modes, e.g. "console, file"
|
; Use comma to separate multiple modes, e.g. "console, file"
|
||||||
MODE = console
|
MODE = file
|
||||||
; Buffer length of the channel, keep it as it is if you don't know what it is.
|
; Buffer length of the channel, keep it as it is if you don't know what it is.
|
||||||
BUFFER_LEN = 10000
|
BUFFER_LEN = 10000
|
||||||
REDIRECT_MACARON_LOG = false
|
REDIRECT_MACARON_LOG = false
|
||||||
|
@ -776,7 +790,7 @@ ENABLE_ACCESS_LOG = false
|
||||||
ACCESS_LOG_TEMPLATE = {{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}"
|
ACCESS_LOG_TEMPLATE = {{.Ctx.RemoteAddr}} - {{.Identity}} {{.Start.Format "[02/Jan/2006:15:04:05 -0700]" }} "{{.Ctx.Req.Method}} {{.Ctx.Req.RequestURI}} {{.Ctx.Req.Proto}}" {{.ResponseWriter.Status}} {{.ResponseWriter.Size}} "{{.Ctx.Req.Referer}}\" \"{{.Ctx.Req.UserAgent}}"
|
||||||
ACCESS = file
|
ACCESS = file
|
||||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
||||||
LEVEL = Info
|
LEVEL = info
|
||||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "None"
|
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "None"
|
||||||
STACKTRACE_LEVEL = None
|
STACKTRACE_LEVEL = None
|
||||||
|
|
||||||
|
@ -938,28 +952,28 @@ DEFAULT_MAX_BLOB_SIZE = 10485760
|
||||||
; Enables OAuth2 provider
|
; Enables OAuth2 provider
|
||||||
ENABLE = true
|
ENABLE = true
|
||||||
; Lifetime of an OAuth2 access token in seconds
|
; Lifetime of an OAuth2 access token in seconds
|
||||||
ACCESS_TOKEN_EXPIRATION_TIME=3600
|
ACCESS_TOKEN_EXPIRATION_TIME = 3600
|
||||||
; Lifetime of an OAuth2 access token in hours
|
; Lifetime of an OAuth2 access token in hours
|
||||||
REFRESH_TOKEN_EXPIRATION_TIME=730
|
REFRESH_TOKEN_EXPIRATION_TIME = 730
|
||||||
; Check if refresh token got already used
|
; Check if refresh token got already used
|
||||||
INVALIDATE_REFRESH_TOKENS=false
|
INVALIDATE_REFRESH_TOKENS = false
|
||||||
; OAuth2 authentication secret for access and refresh tokens, change this to a unique string.
|
; OAuth2 authentication secret for access and refresh tokens, change this to a unique string.
|
||||||
JWT_SECRET=Bk0yK7Y9g_p56v86KaHqjSbxvNvu3SbKoOdOt2ZcXvU
|
JWT_SECRET = Bk0yK7Y9g_p56v86KaHqjSbxvNvu3SbKoOdOt2ZcXvU
|
||||||
; Maximum length of oauth2 token/cookie stored on server
|
; Maximum length of oauth2 token/cookie stored on server
|
||||||
MAX_TOKEN_LENGTH=32767
|
MAX_TOKEN_LENGTH = 32767
|
||||||
|
|
||||||
[i18n]
|
[i18n]
|
||||||
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,uk-UA,ja-JP,es-ES,pt-BR,pt-PT,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR
|
LANGS = en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,uk-UA,ja-JP,es-ES,pt-BR,pt-PT,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR
|
||||||
NAMES = English,简体中文,繁體中文(香港),繁體中文(台灣),Deutsch,français,Nederlands,latviešu,русский,Українська,日本語,español,português do Brasil,Português de Portugal,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어
|
NAMES = English,简体中文,繁體中文(香港),繁體中文(台灣),Deutsch,français,Nederlands,latviešu,русский,Українська,日本語,español,português do Brasil,Português de Portugal,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어
|
||||||
|
|
||||||
[U2F]
|
[U2F]
|
||||||
|
|
||||||
; NOTE: THE DEFAULT VALUES HERE WILL NEED TO BE CHANGED
|
; NOTE: THE DEFAULT VALUES HERE WILL NEED TO BE CHANGED
|
||||||
; Two Factor authentication with security keys
|
; Two Factor authentication with security keys
|
||||||
; https://developers.yubico.com/U2F/App_ID.html
|
; https://developers.yubico.com/U2F/App_ID.html
|
||||||
;APP_ID = http://localhost:3000/
|
; APP_ID = http://localhost:3000/
|
||||||
; Comma seperated list of trusted facets
|
; Comma seperated list of trusted facets
|
||||||
;TRUSTED_FACETS = http://localhost:3000/
|
; TRUSTED_FACETS = http://localhost:3000/
|
||||||
|
|
||||||
; Extension mapping to highlight class
|
; Extension mapping to highlight class
|
||||||
; e.g. .toml=ini
|
; e.g. .toml=ini
|
||||||
[highlight.mapping]
|
[highlight.mapping]
|
||||||
|
@ -972,19 +986,19 @@ SHOW_FOOTER_VERSION = true
|
||||||
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true
|
SHOW_FOOTER_TEMPLATE_LOAD_TIME = true
|
||||||
|
|
||||||
[markup.sanitizer.1]
|
[markup.sanitizer.1]
|
||||||
|
|
||||||
; The following keys can appear once to define a sanitation policy rule.
|
; The following keys can appear once to define a sanitation policy rule.
|
||||||
; This section can appear multiple times by adding a unique alphanumeric suffix to define multiple rules.
|
; This section can appear multiple times by adding a unique alphanumeric suffix to define multiple rules.
|
||||||
; e.g., [markup.sanitizer.1] -> [markup.sanitizer.2] -> [markup.sanitizer.TeX]
|
; e.g., [markup.sanitizer.1] -> [markup.sanitizer.2] -> [markup.sanitizer.TeX]
|
||||||
;ELEMENT = span
|
; ELEMENT = span
|
||||||
;ALLOW_ATTR = class
|
; ALLOW_ATTR = class
|
||||||
;REGEXP = ^(info|warning|error)$
|
; REGEXP = ^(info|warning|error)$
|
||||||
|
|
||||||
[markup.asciidoc]
|
[markup.asciidoc]
|
||||||
ENABLED = false
|
ENABLED = false
|
||||||
; List of file extensions that should be rendered by an external command
|
; List of file extensions that should be rendered by an external command
|
||||||
FILE_EXTENSIONS = .adoc,.asciidoc
|
FILE_EXTENSIONS = .adoc,.asciidoc
|
||||||
; External command to render all matching extensions
|
; External command to render all matching extensions
|
||||||
RENDER_COMMAND = "asciidoc --out-file=- -"
|
RENDER_COMMAND = asciidoc --out-file=- -
|
||||||
; Don't pass the file on STDIN, pass the filename as argument instead.
|
; Don't pass the file on STDIN, pass the filename as argument instead.
|
||||||
IS_INPUT_FILE = false
|
IS_INPUT_FILE = false
|
||||||
|
|
||||||
|
@ -1001,7 +1015,7 @@ QUEUE_TYPE = channel
|
||||||
QUEUE_LENGTH = 1000
|
QUEUE_LENGTH = 1000
|
||||||
; Task queue connection string, available only when `QUEUE_TYPE` is `redis`.
|
; Task queue connection string, available only when `QUEUE_TYPE` is `redis`.
|
||||||
; If there is a password of redis, use `addrs=127.0.0.1:6379 password=123 db=0`.
|
; If there is a password of redis, use `addrs=127.0.0.1:6379 password=123 db=0`.
|
||||||
QUEUE_CONN_STR = "addrs=127.0.0.1:6379 db=0"
|
QUEUE_CONN_STR = addrs=127.0.0.1:6379 db=0
|
||||||
|
|
||||||
[migrations]
|
[migrations]
|
||||||
; Max attempts per http/https request on migrations.
|
; Max attempts per http/https request on migrations.
|
|
@ -1 +1,3 @@
|
||||||
|
# echo "sourcing environment file $BASH_SOURCE"
|
||||||
export GITEA_DATA_DIR=/mnt/data/git-server
|
export GITEA_DATA_DIR=/mnt/data/git-server
|
||||||
|
# echo "setting GITEA_DATA_DIR=/mnt/data/git-server"
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
# can override declared instance
|
||||||
|
# export GITEA_INSTANCE=default-testing
|
||||||
|
# export GITEA_DATA_DIR=/opt/git-data-default
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA AQUAMARINE THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: radial-gradient(ellipse at center, #47918a 0%, #0b3161 100%) center center/cover no-repeat fixed;
|
||||||
|
--modal-bg-color: radial-gradient(ellipse at top, #47918a 0%, #0b3161 100%) center center/cover no-repeat fixed;
|
||||||
|
--button-color: #009688;
|
||||||
|
--button-color-hover: #12afa0;
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color: #12afa0;
|
||||||
|
--accent-color-hover: #fff;
|
||||||
|
--text: #eee;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-color: #12afa0;
|
||||||
|
|
||||||
|
--heatmap-color-1: #002D24;
|
||||||
|
--heatmap-color-2: #004B40;
|
||||||
|
--heatmap-color-3: #006B5F;
|
||||||
|
--heatmap-color-4: #008C7E;
|
||||||
|
--heatmap-color-5: #12AFA0;
|
||||||
|
}
|
|
@ -0,0 +1,561 @@
|
||||||
|
/*
|
||||||
|
/* dP oo
|
||||||
|
/* 88
|
||||||
|
/* 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88 .dP .d8888b. dP
|
||||||
|
/* 88'`88'`88 88' `88 88' `88 88' `88 88888" 88' `88 88
|
||||||
|
/* 88 88 88 88. .88 88 88 88. .88 88 `8b. 88. .88 88
|
||||||
|
/* dP dP dP `88888P' dP dP `88888P' dP `YP `88888P8 dP
|
||||||
|
|
||||||
|
/* Source: https://gist.github.com/ntrrg/f70d4dc6ed8a739a36fe7c55f422c5f3 */
|
||||||
|
:root {
|
||||||
|
/* Background */
|
||||||
|
--code-background: #1f1f1f;
|
||||||
|
--code-color: #f8f8f2;
|
||||||
|
|
||||||
|
/* Error */
|
||||||
|
--code-err-background: #960050;
|
||||||
|
--code-err-color: #1e0010;
|
||||||
|
|
||||||
|
/* LineHighlight */
|
||||||
|
--code-hl-background: #ffffcc;
|
||||||
|
|
||||||
|
/* Keyword */
|
||||||
|
--code-k-color: #66d9ef;
|
||||||
|
|
||||||
|
/* KeywordConstant */
|
||||||
|
--code-kc-color: #66d9ef;
|
||||||
|
|
||||||
|
/* KeywordDeclaration */
|
||||||
|
--code-kd-color: #66d9ef;
|
||||||
|
|
||||||
|
/* KeywordNamespace */
|
||||||
|
--code-kn-color: #f92672;
|
||||||
|
|
||||||
|
/* KeywordPseudo */
|
||||||
|
--code-kp-color: #66d9ef;
|
||||||
|
|
||||||
|
/* KeywordReserved */
|
||||||
|
--code-kr-color: #66d9ef;
|
||||||
|
|
||||||
|
/* KeywordType */
|
||||||
|
--code-kt-color: #66d9ef;
|
||||||
|
|
||||||
|
/* NameAttribute */
|
||||||
|
--code-na-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameClass */
|
||||||
|
--code-nc-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameConstant */
|
||||||
|
--code-no-color: #66d9ef;
|
||||||
|
|
||||||
|
/* NameDecorator */
|
||||||
|
--code-nd-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameException */
|
||||||
|
--code-ne-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameFunction */
|
||||||
|
--code-nf-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameOther */
|
||||||
|
--code-nx-color: #a6e22e;
|
||||||
|
|
||||||
|
/* NameTag */
|
||||||
|
--code-nt-color: #f92672;
|
||||||
|
|
||||||
|
/* Literal */
|
||||||
|
--code-l-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralDate */
|
||||||
|
--code-ld-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralString */
|
||||||
|
--code-s-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringAffix */
|
||||||
|
--code-sa-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringBacktick */
|
||||||
|
--code-sb-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringChar */
|
||||||
|
--code-sc-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringDelimiter */
|
||||||
|
--code-dl-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringDoc */
|
||||||
|
--code-sd-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringDouble */
|
||||||
|
--code-s2-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringEscape */
|
||||||
|
--code-se-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralStringHeredoc */
|
||||||
|
--code-sh-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringInterpol */
|
||||||
|
--code-si-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringOther */
|
||||||
|
--code-sx-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringRegex */
|
||||||
|
--code-sr-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringSingle */
|
||||||
|
--code-s1-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralStringSymbol */
|
||||||
|
--code-ss-color: #e6db74;
|
||||||
|
|
||||||
|
/* LiteralNumber */
|
||||||
|
--code-m-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberBin */
|
||||||
|
--code-mb-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberFloat */
|
||||||
|
--code-mf-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberHex */
|
||||||
|
--code-mh-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberInteger */
|
||||||
|
--code-mi-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberIntegerLong */
|
||||||
|
--code-il-color: #ae81ff;
|
||||||
|
|
||||||
|
/* LiteralNumberOct */
|
||||||
|
--code-mo-color: #ae81ff;
|
||||||
|
|
||||||
|
/* Operator */
|
||||||
|
--code-o-color: #f92672;
|
||||||
|
|
||||||
|
/* OperatorWord */
|
||||||
|
--code-ow-color: #f92672;
|
||||||
|
|
||||||
|
/* Comment */
|
||||||
|
--code-c-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentHashbang */
|
||||||
|
--code-ch-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentMultiline */
|
||||||
|
--code-cm-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentSingle */
|
||||||
|
--code-c1-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentSpecial */
|
||||||
|
--code-cs-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentPreproc */
|
||||||
|
--code-cp-color: #75715e;
|
||||||
|
|
||||||
|
/* CommentPreprocFile */
|
||||||
|
--code-cpf-color: #75715e;
|
||||||
|
|
||||||
|
/* GenericDeleted */
|
||||||
|
--code-gd-color: #f92672;
|
||||||
|
|
||||||
|
/* GenericInserted */
|
||||||
|
--code-gi-color: #a6e22e;
|
||||||
|
|
||||||
|
/* GenericSubheading */
|
||||||
|
--code-gu-color: #75715e;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CHROMA */
|
||||||
|
/* Table */
|
||||||
|
.chroma .ui.table tbody tr {
|
||||||
|
border-color: #333640;
|
||||||
|
background: var(--code-background);
|
||||||
|
}
|
||||||
|
/* Background */
|
||||||
|
.chroma,
|
||||||
|
.markdown:not(code) .highlight pre,
|
||||||
|
.markdown:not(code) pre {
|
||||||
|
background-color: var(--code-background);
|
||||||
|
color: var(--code-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error */
|
||||||
|
.chroma .err {
|
||||||
|
background-color: var(--code-err-background);
|
||||||
|
color: var(--code-err-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LineTableTD */
|
||||||
|
.chroma .lntd {
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LineTable */
|
||||||
|
.chroma .lntable {
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
border: 0;
|
||||||
|
border-spacing: 0;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LineHighlight */
|
||||||
|
.chroma .hl {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
background-color: var(--code-hl-background);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LineNumbersTable */
|
||||||
|
.chroma .lnt {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LineNumbers */
|
||||||
|
.chroma .ln {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Keyword */
|
||||||
|
.chroma .k {
|
||||||
|
color: var(--code-k-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordConstant */
|
||||||
|
.chroma .kc {
|
||||||
|
color: var(--code-kc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordDeclaration */
|
||||||
|
.chroma .kd {
|
||||||
|
color: var(--code-kd-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordNamespace */
|
||||||
|
.chroma .kn {
|
||||||
|
color: var(--code-kn-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordPseudo */
|
||||||
|
.chroma .kp {
|
||||||
|
color: var(--code-kp-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordReserved */
|
||||||
|
.chroma .kr {
|
||||||
|
color: var(--code-kr-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* KeywordType */
|
||||||
|
.chroma .kt {
|
||||||
|
color: var(--code-kt-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Name */
|
||||||
|
.chroma .n {
|
||||||
|
color: var(--code-n-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameAttribute */
|
||||||
|
.chroma .na {
|
||||||
|
color: var(--code-na-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameBuiltin */
|
||||||
|
.chroma .nb {
|
||||||
|
color: var(--code-nb-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameBuiltinPseudo */
|
||||||
|
.chroma .bp {
|
||||||
|
color: var(--code-bp-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameClass */
|
||||||
|
.chroma .nc {
|
||||||
|
color: var(--code-nc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameConstant */
|
||||||
|
.chroma .no {
|
||||||
|
color: var(--code-no-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameDecorator */
|
||||||
|
.chroma .nd {
|
||||||
|
color: var(--code-nd-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameEntity */
|
||||||
|
.chroma .ni {
|
||||||
|
color: var(--code-ni-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameException */
|
||||||
|
.chroma .ne {
|
||||||
|
color: var(--code-ne-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameFunction */
|
||||||
|
.chroma .nf {
|
||||||
|
color: var(--code-nf-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameFunctionMagic */
|
||||||
|
.chroma .fm {
|
||||||
|
color: var(--code-fm-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameLabel */
|
||||||
|
.chroma .nl {
|
||||||
|
color: var(--code-nl-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameNamespace */
|
||||||
|
.chroma .nn {
|
||||||
|
color: var(--code-nn-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameOther */
|
||||||
|
.chroma .nx {
|
||||||
|
color: var(--code-nx-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameProperty */
|
||||||
|
.chroma .py {
|
||||||
|
color: var(--code-py-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameTag */
|
||||||
|
.chroma .nt {
|
||||||
|
color: var(--code-nt-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameVariable */
|
||||||
|
.chroma .nv {
|
||||||
|
color: var(--code-nv-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameVariableClass */
|
||||||
|
.chroma .vc {
|
||||||
|
color: var(--code-vc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameVariableGlobal */
|
||||||
|
.chroma .vg {
|
||||||
|
color: var(--code-vg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameVariableInstance */
|
||||||
|
.chroma .vi {
|
||||||
|
color: var(--code-vi-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameVariableMagic */
|
||||||
|
.chroma .vm {
|
||||||
|
color: var(--code-vm-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Literal */
|
||||||
|
.chroma .l {
|
||||||
|
color: var(--code-l-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralDate */
|
||||||
|
.chroma .ld {
|
||||||
|
color: var(--code-ld-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralString */
|
||||||
|
.chroma .s {
|
||||||
|
color: var(--code-s-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringAffix */
|
||||||
|
.chroma .sa {
|
||||||
|
color: var(--code-sa-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringBacktick */
|
||||||
|
.chroma .sb {
|
||||||
|
color: var(--code-sb-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringChar */
|
||||||
|
.chroma .sc {
|
||||||
|
color: var(--code-sc-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringDelimiter */
|
||||||
|
.chroma .dl {
|
||||||
|
color: var(--code-dl-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringDoc */
|
||||||
|
.chroma .sd {
|
||||||
|
color: var(--code-sd-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringDouble */
|
||||||
|
.chroma .s2 {
|
||||||
|
color: var(--code-s2-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringEscape */
|
||||||
|
.chroma .se {
|
||||||
|
color: var(--code-se-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringHeredoc */
|
||||||
|
.chroma .sh {
|
||||||
|
color: var(--code-sh-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringInterpol */
|
||||||
|
.chroma .si {
|
||||||
|
color: var(--code-si-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringOther */
|
||||||
|
.chroma .sx {
|
||||||
|
color: var(--code-sx-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringRegex */
|
||||||
|
.chroma .sr {
|
||||||
|
color: var(--code-sr-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringSingle */
|
||||||
|
.chroma .s1 {
|
||||||
|
color: var(--code-s1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralStringSymbol */
|
||||||
|
.chroma .ss {
|
||||||
|
color: var(--code-ss-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumber */
|
||||||
|
.chroma .m {
|
||||||
|
color: var(--code-m-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberBin */
|
||||||
|
.chroma .mb {
|
||||||
|
color: var(--code-mb-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberFloat */
|
||||||
|
.chroma .mf {
|
||||||
|
color: var(--code-mf-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberHex */
|
||||||
|
.chroma .mh {
|
||||||
|
color: var(--code-mh-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberInteger */
|
||||||
|
.chroma .mi {
|
||||||
|
color: var(--code-mi-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberIntegerLong */
|
||||||
|
.chroma .il {
|
||||||
|
color: var(--code-il-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LiteralNumberOct */
|
||||||
|
.chroma .mo {
|
||||||
|
color: var(--code-mo-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Operator */
|
||||||
|
.chroma .o {
|
||||||
|
color: var(--code-o-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* OperatorWord */
|
||||||
|
.chroma .ow {
|
||||||
|
color: var(--code-ow-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Punctuation */
|
||||||
|
.chroma .p {
|
||||||
|
color: var(--code-p-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Comment */
|
||||||
|
.chroma .c {
|
||||||
|
color: var(--code-c-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentHashbang */
|
||||||
|
.chroma .ch {
|
||||||
|
color: var(--code-ch-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentMultiline */
|
||||||
|
.chroma .cm {
|
||||||
|
color: var(--code-cm-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentSingle */
|
||||||
|
.chroma .c1 {
|
||||||
|
color: var(--code-c1-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentSpecial */
|
||||||
|
.chroma .cs {
|
||||||
|
color: var(--code-cs-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentPreproc */
|
||||||
|
.chroma .cp {
|
||||||
|
color: var(--code-cp-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CommentPreprocFile */
|
||||||
|
.chroma .cpf {
|
||||||
|
color: var(--code-cpf-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GenericDeleted */
|
||||||
|
.chroma .gd {
|
||||||
|
color: var(--code-gd-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GenericEmph */
|
||||||
|
.chroma .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GenericInserted */
|
||||||
|
.chroma .gi {
|
||||||
|
color: var(--code-gi-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GenericStrong */
|
||||||
|
.chroma .gs {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* GenericSubheading */
|
||||||
|
.chroma .gu {
|
||||||
|
color: var(--code-gu-color);
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA DARK THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: radial-gradient(circle, #3a3a3a, #2d2d2d, #202020, #141414, #000000) center center/cover no-repeat fixed;
|
||||||
|
--modal-bg-color: radial-gradient(circle , #3a3a3a, #2d2d2d, #202020, #141414, #000000) center center/cover no-repeat fixed;
|
||||||
|
--button-color: hsla(0,0%,100%,.15);
|
||||||
|
--button-color-hover: hsla(0,0%,100%,.30);
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color: #646464;
|
||||||
|
--accent-color-hover: #ffffff73;
|
||||||
|
--text: #b7b7b7;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-hover: rgba(255, 255, 255, 0.45);
|
||||||
|
|
||||||
|
--heatmap-color-1: #303030;
|
||||||
|
--heatmap-color-2: #5E5E5E;
|
||||||
|
--heatmap-color-3: #919191;
|
||||||
|
--heatmap-color-4: #C6C6C6;
|
||||||
|
--heatmap-color-5: #FFFFFF;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA HOTLINE THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: radial-gradient(ellipse at center, #F44336 0%, #0b3161 100%) center center/cover no-repeat fixed;
|
||||||
|
--modal-bg-color: radial-gradient(ellipse at top, #F44336 0%, #0b3161 100%) center center/cover no-repeat fixed;
|
||||||
|
--button-color: hsla(0,0%,100%,.15);
|
||||||
|
--button-color-hover: hsla(0,0%,100%,.30);
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color: #F44336;
|
||||||
|
--accent-color-hover: #0b3161;
|
||||||
|
--text: #eee;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-hover: #F44336;
|
||||||
|
|
||||||
|
--heatmap-color-1: #690000;
|
||||||
|
--heatmap-color-2: #890000;
|
||||||
|
--heatmap-color-3: #AC0002;
|
||||||
|
--heatmap-color-4: #D0191D;
|
||||||
|
--heatmap-color-5: #F44336;
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA ORGANIZR-DARK THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: #1f1f1f;
|
||||||
|
--modal-bg-color: #1b1b1b;
|
||||||
|
--button-color: #2cabe3;
|
||||||
|
--button-color-hover: rgb(44 171 227 / .8);
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color:#2cabe3;
|
||||||
|
--accent-color-hover: #fff;
|
||||||
|
--text: #96a2b4;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-color: #2cabe3;
|
||||||
|
|
||||||
|
--heatmap-color-1: #002A57;
|
||||||
|
--heatmap-color-2: #004878;
|
||||||
|
--heatmap-color-3: #00679A;
|
||||||
|
--heatmap-color-4: #0088BE;
|
||||||
|
--heatmap-color-5: #2CABE3;
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA PLEX THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: url("https://raw.githubusercontent.com/gilbN/theme.park/master/Resources/blur-noise.png"), url("https://raw.githubusercontent.com/gilbN/theme.park/master/Resources/preset-light2.png") center center/cover no-repeat fixed;
|
||||||
|
--modal-bg-color: url("https://raw.githubusercontent.com/gilbN/theme.park/master/Resources/blur-noise.png"), url("https://raw.githubusercontent.com/gilbN/theme.park/master/Resources/preset-dark2.png") center center/cover no-repeat fixed;
|
||||||
|
--button-color: #cc7b19;
|
||||||
|
--button-color-hover: #e59029;
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color: #e5a00d;
|
||||||
|
--accent-color-hover: #ffc107;
|
||||||
|
--text: #eee;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-color:#fff;
|
||||||
|
|
||||||
|
--heatmap-color-1: #492000;
|
||||||
|
--heatmap-color-2: #6E4500;
|
||||||
|
--heatmap-color-3: #9B6C00;
|
||||||
|
--heatmap-color-4: #CC9500;
|
||||||
|
--heatmap-color-5: #FFC107;
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
|
||||||
|
/* dP dP dP */
|
||||||
|
/* 88 88 88 */
|
||||||
|
/* d8888P 88d888b. .d8888b. 88d8b.d8b. .d8888b. 88d888b. .d8888b. 88d888b. 88 .dP */
|
||||||
|
/* 88 88' `88 88ooood8 88'`88'`88 88ooood8 88' `88 88' `88 88' `88 88888" */
|
||||||
|
/* 88 88 88 88. ... 88 88 88 88. ... 88. .88 88. .88 88 88 `8b. */
|
||||||
|
/* dP dP dP `88888P' dP dP dP `88888P' 88 88Y888P' `88888P8 dP dP `YP */
|
||||||
|
/* 88 */
|
||||||
|
/* dP */
|
||||||
|
|
||||||
|
/* Made by @gilbN */
|
||||||
|
/* https://github.com/gilbN/theme.park */
|
||||||
|
|
||||||
|
/* GITEA SPACE GRAY THEME */
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/gitea-base.css);
|
||||||
|
@import url(https://gilbn.github.io/theme.park/CSS/themes/gitea/chroma.css);
|
||||||
|
:root {
|
||||||
|
--main-bg-color: radial-gradient( ellipse at center, rgba(87,108,117,1) 0%, rgba(37,50,55,1) 100.2% ) center center/cover no-repeat fixed;
|
||||||
|
--modal-bg-color: radial-gradient( ellipse at top, rgba(87,108,117,1) 0%, rgba(37,50,55,1) 100.2% ) center center/cover no-repeat fixed;
|
||||||
|
--button-color: #607D8B;
|
||||||
|
--button-color-hover: #81a6b7;
|
||||||
|
--button-text: #eee;
|
||||||
|
--accent-color: #81a6b7;
|
||||||
|
--accent-color-hover: #81a6b7;
|
||||||
|
--text: #eee;
|
||||||
|
--text-hover: #fff;
|
||||||
|
--text-muted: #bbb;
|
||||||
|
--link-color: #81a6b7;
|
||||||
|
|
||||||
|
--heatmap-color-1: #002634;
|
||||||
|
--heatmap-color-2: #1D4352;
|
||||||
|
--heatmap-color-3: #3E6272;
|
||||||
|
--heatmap-color-4: #5F8394;
|
||||||
|
--heatmap-color-5: #81A6B7;
|
||||||
|
|
||||||
|
}
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
SDIR=$(dirname "$(readlink -f "$0")") || exit
|
|
||||||
DIR=$(dirname "$SDIR") || exit
|
|
||||||
echo Caddy Reposity Root: $DIR
|
|
||||||
source $SDIR/library
|
|
||||||
CONF=$DIR/conf/${1:-caddy}.conf
|
|
||||||
CMD=${2:-run}
|
|
||||||
get-caddy-bin # this sets $CADDY_BIN
|
|
||||||
BIN=$DIR/bin/$CADDY_BIN
|
|
||||||
[ ! -f "$BIN" ] && echo binary file $BIN does not exist && exit 1
|
|
||||||
[ ! -x "$BIN" ] && echo binary file $BIN is not executable && exit 1
|
|
||||||
[ ! -f "$CONF" ] && echo no configuration file $CONF && exit 1
|
|
||||||
# source any need environment files in $DIR/env
|
|
||||||
for f in $DIR/env/*.env; do source $f; done
|
|
||||||
echo Running caddy binary $BIN with configuration $CONF and command $CMD as user $USER
|
|
||||||
$BIN $CMD --config $CONF --adapter caddyfile
|
|
|
@ -1,44 +0,0 @@
|
||||||
# if this file and binary resides on other than filesystem root then COPY the service to NOT link it
|
|
||||||
# Change directories below to fit your install
|
|
||||||
[Unit]
|
|
||||||
Description=Gitea (Git with a cup of tea)
|
|
||||||
After=syslog.target
|
|
||||||
After=network.target
|
|
||||||
# Binary, System Files and Repos on other than filesystem root then include this require/after
|
|
||||||
# With below command you can find the unit of the mounted drive of those files
|
|
||||||
#systemctl list-units | grep <dir>
|
|
||||||
# gitea files in opt/gitea
|
|
||||||
Requires=opt.mount
|
|
||||||
After=opt.mount
|
|
||||||
# repo/db/data for gitea in mnt/git-server
|
|
||||||
Requires=mnt-data.mount
|
|
||||||
After=mnt-data.mount
|
|
||||||
# using local sqlite
|
|
||||||
#After=mysqld.service
|
|
||||||
#After=postgresql.service
|
|
||||||
#After=memcached.service
|
|
||||||
#After=redis.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
# Modify these two values and uncomment them if you have
|
|
||||||
# repos with lots of files and get an HTTP error 500 because
|
|
||||||
# of that
|
|
||||||
###
|
|
||||||
#LimitMEMLOCK=infinity
|
|
||||||
#LimitNOFILE=65535
|
|
||||||
RestartSec=2s
|
|
||||||
Type=simple
|
|
||||||
User=sysadmin
|
|
||||||
Group=sysadmin
|
|
||||||
Environment=GITEA_DIR=@d
|
|
||||||
Environment=GITEA_REPOS=@r
|
|
||||||
ExecStart=/bin/bash -c '${GITEA_DIR}/scripts/run -r ${GITEA_REPOS} %i '
|
|
||||||
Restart=always
|
|
||||||
# If you want to bind Gitea to a port below 1024 uncomment
|
|
||||||
# the two values below
|
|
||||||
###
|
|
||||||
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
||||||
#AmbientCapabilities=CAP_NET_BIND_SERVICE
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
source $GITEA_DIR/scripts/library
|
||||||
|
|
||||||
|
ini_gen "$@"
|
203
scripts/library
203
scripts/library
|
@ -1,15 +1,19 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(dirname "$BASH_SOURCE")"; pwd -P)")"
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(dirname "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
export GITEA_GITHUB_REPO=go-gitea/gitea
|
||||||
|
|
||||||
|
# finds current installed version
|
||||||
function version () {
|
function version () {
|
||||||
# https://askubuntu.com/a/952479/478337
|
# https://askubuntu.com/a/952479/478337
|
||||||
[[ ! -f $GITEA_DIR/gitea.bin ]] && echo "" && return 2
|
[[ $1 ]] && export GITEA_BIN=$1
|
||||||
CUR_VER=$($GITEA_DIR/gitea.bin -version | sed -nr 's:.*version ([^ ]+).*:\1:p')
|
[[ ! $GITEA_BIN ]] && return 3 && echo no bin file path passed
|
||||||
|
[[ ! -f $GITEA_BIN ]] && echo "" && return 2
|
||||||
|
CUR_VER=$($GITEA_BIN -version | sed -nr 's:.*version ([^ ]+).*:\1:p')
|
||||||
[ ! $CUR_VER ] && return 1
|
[ ! $CUR_VER ] && return 1
|
||||||
echo $CUR_VER
|
echo $CUR_VER
|
||||||
}
|
}
|
||||||
|
|
||||||
# sets global $OS
|
# sets system operating system that is supported
|
||||||
function get_OS () {
|
function get_OS () {
|
||||||
case "$OSTYPE" in
|
case "$OSTYPE" in
|
||||||
# uncomment valid OS
|
# uncomment valid OS
|
||||||
|
@ -22,7 +26,7 @@ function get_OS () {
|
||||||
echo $OS
|
echo $OS
|
||||||
}
|
}
|
||||||
|
|
||||||
# sets global $ARCH
|
# gets system architecture supported
|
||||||
function get_arch () {
|
function get_arch () {
|
||||||
declare -A ARCHES
|
declare -A ARCHES
|
||||||
#ARCHES=( ["arm64"]="arm64" ["aarch64"]="arm64" ["x86_64"]="amd64" ["armv61"]="armv6" ["armv71"]="armv7" ["arm32"]="armv7" ["armhf"]="armv7" )
|
#ARCHES=( ["arm64"]="arm64" ["aarch64"]="arm64" ["x86_64"]="amd64" ["armv61"]="armv6" ["armv71"]="armv7" ["arm32"]="armv7" ["armhf"]="armv7" )
|
||||||
|
@ -33,6 +37,193 @@ ARCH=${ARCHES[$(uname -m)]}
|
||||||
echo $ARCH
|
echo $ARCH
|
||||||
}
|
}
|
||||||
|
|
||||||
function set-env () {
|
# get list of installed gitea themes in /frontend/$1/public/css
|
||||||
for f in $1/*.env; do source $f; done
|
function get_theme_list () {
|
||||||
|
local themes=""
|
||||||
|
for theme in $1/theme*.css; do
|
||||||
|
themes+=$(basename $theme .css | cut -c 7-),
|
||||||
|
done
|
||||||
|
themes+=gitea,arc_green
|
||||||
|
echo $themes
|
||||||
|
}
|
||||||
|
|
||||||
|
# sets the environment variables for gitea managment based on instance name
|
||||||
|
function set_env () {
|
||||||
|
|
||||||
|
unset GITEA_INSTANCE
|
||||||
|
unset GITEA_BIN
|
||||||
|
unset GITEA_DATA_DIR
|
||||||
|
|
||||||
|
local Env_file
|
||||||
|
local Dir
|
||||||
|
declare OPTARG
|
||||||
|
declare OPTION
|
||||||
|
declare OPTIND=0
|
||||||
|
|
||||||
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
[[ ! $GITEA_DIR ]] && echo main directory not set, aborting && return 2
|
||||||
|
|
||||||
|
while getopts 'tiud:' OPTION; do
|
||||||
|
case "$OPTION" in
|
||||||
|
d) Dir=$OPTARG ;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(( $OPTIND - 1 ))
|
||||||
|
|
||||||
|
[[ $1 ]] && export GITEA_INSTANCE=$1
|
||||||
|
[[ ! $GITEA_INSTANCE ]] && echo warning no gitea instance set using \'default\' && export GITEA_INSTANCE=default
|
||||||
|
Env_file=$GITEA_DIR/env/$GITEA_INSTANCE.env
|
||||||
|
[[ -f $Env_file ]] && source $Env_file || echo info: no environment found $Env_file
|
||||||
|
|
||||||
|
# env | grep GITEA
|
||||||
|
# echo ---
|
||||||
|
|
||||||
|
[[ ! $GITEA_BIN ]] && GITEA_BIN="$GITEA_DIR/gitea.bin"
|
||||||
|
[[ $GITEA_BIN == */ ]] && GITEA_BIN="${GITEA_BIN}gitea.bin"
|
||||||
|
[[ ! $GITEA_BIN == /* ]] && GITEA_BIN="$GITEA_DIR/$GITEA_BIN"
|
||||||
|
export GITEA_BIN
|
||||||
|
|
||||||
|
# option overrides environment file
|
||||||
|
GITEA_DATA_DIR=${Dir:-$GITEA_DATA_DIR}
|
||||||
|
GITEA_DATA_DIR=${GITEA_DATA_DIR:-$GITEA_DIR/data}
|
||||||
|
[[ ! $GITEA_DATA_DIR == /* ]] && GITEA_DATA_DIR="$GITEA_DIR/$GITEA_DATA_DIR"
|
||||||
|
export GITEA_DATA_DIR
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# generates .ini from corresponding .tmpl file
|
||||||
|
function ini_gen () {
|
||||||
|
|
||||||
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
|
||||||
|
local Ini
|
||||||
|
local Lock=true
|
||||||
|
declare OPTARG
|
||||||
|
declare OPTION
|
||||||
|
declare OPTIND=0
|
||||||
|
|
||||||
|
while getopts 'itud:' OPTION; do
|
||||||
|
case "$OPTION" in
|
||||||
|
i) Lock=false ;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(( $OPTIND - 1 ))
|
||||||
|
|
||||||
|
GITEA_INSTANCE=$1
|
||||||
|
|
||||||
|
[[ ! $GITEA_INSTANCE ]] && set_env "$@"
|
||||||
|
|
||||||
|
echo $Lock
|
||||||
|
echo ini_gen
|
||||||
|
env | grep GITEA
|
||||||
|
|
||||||
|
Ini=$GITEA_DIR/config/$GITEA_INSTANCE
|
||||||
|
|
||||||
|
if [[ -f "$Ini.tmpl" ]]; then
|
||||||
|
|
||||||
|
_Header=";################################################################
|
||||||
|
;# THIS FILE IS GENERATED. Do not edit directly #
|
||||||
|
;# It was created from $Ini.tmpl #
|
||||||
|
;# Edit this file and run with -t or run ini-gen to regenerate #
|
||||||
|
;################################################################"
|
||||||
|
# https://stackoverflow.com/a/22819516/4695378
|
||||||
|
# search and replace data entries in template file
|
||||||
|
echo -e "$_Header" > $Ini.ini
|
||||||
|
cat $Ini.tmpl | \
|
||||||
|
sed 's:@@_server_dir:'$GITEA_DATA_DIR':'g | \
|
||||||
|
sed 's:\(INSTALL_LOCK *= \)\(.*\):\1'${Lock}':' | \
|
||||||
|
sed 's:\(THEMES *= \)\(.*\):\1'"$(get_theme_list $GITEA_DIR/frontend/current/public/css)"':' \
|
||||||
|
>> $Ini.ini
|
||||||
|
echo info: $Ini.ini file was generated from $Ini.tmpl
|
||||||
|
else
|
||||||
|
echo warning: no file "$Ini.tmpl", no ini file was generated
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# downloads gitea binary based on OS and Architecture and whether it needs updating
|
||||||
|
# if you have run into github api anonymous access limits which happens during debugging/dev
|
||||||
|
# then run with user and token environment variables or source separate file
|
||||||
|
function download_bin () {
|
||||||
|
|
||||||
|
# dependencies, jq
|
||||||
|
[[ $(command -v jq &> /dev/null) ]] && echo jq is required, install via \'sudo apt install jq\' && exit
|
||||||
|
echo passed stuff: $@
|
||||||
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(dirname "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
[[ ! $GITEA_BIN ]] && set_env "$@"
|
||||||
|
[[ ! $GITEA_BIN ]] && echo a Gitea binary path not set, aborting && exit 1
|
||||||
|
|
||||||
|
local TokenFile
|
||||||
|
declare OPTARG
|
||||||
|
declare OPTION
|
||||||
|
declare OPTIND=0
|
||||||
|
|
||||||
|
echo passed stuff: $@
|
||||||
|
|
||||||
|
while getopts 'fg:itud:' OPTION; do
|
||||||
|
case "$OPTION" in
|
||||||
|
g) TokenFile=$OPTARG ;;
|
||||||
|
f) Force=true ;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $(( $OPTIND - 1 ))
|
||||||
|
|
||||||
|
echo "#### Gitea Binary Upgrade or Install ###"
|
||||||
|
|
||||||
|
[[ -f $GITEA_BIN ]] && echo Checking for upgrade of $GITEA_BIN || echo no current gitea binary at $GITEA_BIN
|
||||||
|
OS=$(get_OS)
|
||||||
|
ARCH=$(get_arch)
|
||||||
|
[[ ! $OS ]] && echo non supported OS $OS && exit
|
||||||
|
[[ ! $ARCH ]] && echo non supported architecture $ARCH && exit
|
||||||
|
echo Gitea Binary for: Operating System $OS, Architecture $ARCH
|
||||||
|
RECORD=$(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/$GITEA_GITHUB_REPO/releases/latest)
|
||||||
|
NEW_VER=$(echo $RECORD | jq -r '.tag_name')
|
||||||
|
[ "$NEW_VER" ] && echo $NEW_VER is latest version available from https://github.com/$GITEA_GITHUB_REPO/releases
|
||||||
|
# echo Checking current installed Gitea binary version
|
||||||
|
VER=$(version)
|
||||||
|
if [[ "$NEW_VER" == "v$VER" ]]; then
|
||||||
|
echo "Gitea binary is up to date"
|
||||||
|
if [[ $Force ]]; then
|
||||||
|
echo Forcing option set. Downloading/Overwriting existing binary with same version
|
||||||
|
else
|
||||||
|
echo "Nothing to upgrade, exiting"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
[[ $VER ]] && echo updating v$VER to $NEW_VER || echo no current installed gitea binary, installing $NEW_VER
|
||||||
|
fi
|
||||||
|
|
||||||
|
URL=$(echo $RECORD | \
|
||||||
|
jq -r \
|
||||||
|
--arg os $OS \
|
||||||
|
--arg arch $ARCH \
|
||||||
|
--arg archnot "$ARCH." \
|
||||||
|
'.assets[] | select( .name | contains($os)) |
|
||||||
|
select (.name | contains($arch)) |
|
||||||
|
select (.name | contains($archnot) | not )
|
||||||
|
.browser_download_url' \
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ -f ${TokenFile:-$HOME/.github} ]] && source ${TokenFile:-$HOME/.github}
|
||||||
|
|
||||||
|
if [[ $GITHUB_TOKEN ]]; then
|
||||||
|
echo "using access github token with script >>> $GITHUB_USER:$GITHUB_TOKEN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $URL ]; then
|
||||||
|
echo "Downloading Gitea Binary at $URL"
|
||||||
|
wget --user=-u $GITHUB_USER --password=$GITHUB_TOKEN -q --show-progress -O $GITEA_BIN $URL
|
||||||
|
if ( [[ $? -eq 0 ]] && [[ "$NEW_VER" == *"$(version)"* ]] ); then
|
||||||
|
chmod +x $GITEA_BIN
|
||||||
|
echo upgrade succeeded, $GITEA_BIN version is $(version)
|
||||||
|
else
|
||||||
|
echo upgrade from $URL failed
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo unabled to determine download url
|
||||||
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
62
scripts/run
62
scripts/run
|
@ -2,49 +2,49 @@
|
||||||
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
source $GITEA_DIR/scripts/library
|
source $GITEA_DIR/scripts/library
|
||||||
|
|
||||||
|
declare Ini
|
||||||
|
declare Upgrade=false
|
||||||
|
declare Template=false
|
||||||
|
declare Lock=true
|
||||||
declare OPTARG
|
declare OPTARG
|
||||||
declare OPTION
|
declare OPTION
|
||||||
while getopts 'r:' OPTION; do
|
declare OPTIND=0
|
||||||
|
|
||||||
|
while getopts 'itu' OPTION; do
|
||||||
case "$OPTION" in
|
case "$OPTION" in
|
||||||
r)
|
u) Upgrade=true ;;
|
||||||
GITEA_DATA_DIR=$OPTARG
|
t) Template=true ;;
|
||||||
;;
|
i) Lock=false ;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
shift $(( OPTIND - 1 ))
|
|
||||||
|
# echo upgrade: $Upgrade
|
||||||
|
# echo passed $@
|
||||||
|
set_env "$@"
|
||||||
|
# echo passed $@
|
||||||
|
|
||||||
|
echo "#### running instance: $GITEA_INSTANCE with environment ####"
|
||||||
|
env | grep GITEA
|
||||||
|
echo "##################################"
|
||||||
|
|
||||||
|
[[ $Upgrade = true ]] && $GITEA_DIR/scripts/fetch-bin "$@"
|
||||||
|
[[ ! $(version) ]] && echo FATAL! $GITEA_BIN missing or corrupt: run `fetch-bin` script && exit 1
|
||||||
|
|
||||||
export GITEA_INSTANCE=${1:-default}
|
|
||||||
export GITEA_BIN="$GITEA_DIR/gitea.bin"
|
|
||||||
[[ ! -f $GITEA_BIN ]] && $GITEA_DIR/scripts/upgrade
|
|
||||||
[[ ! $(version) ]] && echo $GITEA_DIR/gitea.bin missing or corrupt
|
|
||||||
if [[ ! $GITEA_DATA_DIR ]]; then
|
|
||||||
GITEA_DATA_DIR=$GITEA_DIR/data
|
|
||||||
else
|
|
||||||
[[ ! $GITEA_DATA_DIR == /* ]] && { echo "repo directory $GITEA_DATA_DIR was not absolute, aborting" ; exit; }
|
|
||||||
fi
|
|
||||||
export GITEA_DATA_DIR
|
|
||||||
INI=$GITEA_DIR/config/$GITEA_INSTANCE
|
|
||||||
if ([[ -f "$INI.tmpl" ]] && [[ ! -f $GITEA_DATA_DIR/db/git.db ]]); then
|
|
||||||
# if database does not exist unlock the install page so default user can be set # && LOCK=true
|
|
||||||
# https://stackoverflow.com/a/22819516/4695378
|
|
||||||
# search and replace data subdirectory entries in template file
|
|
||||||
cat $INI.tmpl | sed 's:@@_server_dir:'$GITEA_DATA_DIR':'g | sed 's:\(INSTALL_LOCK *= \)\(.*\):\1'${LOCK:-false}':' > $INI.ini
|
|
||||||
# TODO could replace other values as well
|
|
||||||
fi
|
|
||||||
[[ ! -f "$INI.ini" ]] && { echo "no ini file $INI.ini, aborting" ; exit; }
|
|
||||||
# echo $GITEA_DATA_DIR
|
|
||||||
# echo $GITEA_DIR
|
|
||||||
# echo $ARCH ${ARCHES[$ARCH]} $GITEA_BIN
|
|
||||||
mkdir -p $GITEA_DATA_DIR 2>/dev/null || { echo "unable to make repos directory at $GITEA_DATA_DIR, exiting"; exit; }
|
mkdir -p $GITEA_DATA_DIR 2>/dev/null || { echo "unable to make repos directory at $GITEA_DATA_DIR, exiting"; exit; }
|
||||||
# setup the custom directory in /current
|
# setup the custom directory in /current
|
||||||
mkdir -p $GITEA_DIR/frontend/current
|
mkdir -p $GITEA_DIR/frontend/current
|
||||||
rsync -a --delete $GITEA_DIR/frontend/default/ $GITEA_DIR/frontend/current
|
rsync -a --delete $GITEA_DIR/frontend/default/ $GITEA_DIR/frontend/current
|
||||||
[[ -d $GITEA_DIR/frontend/$GITEA_INSTANCE ]] && rsync -a $GITEA_DIR/frontend/$GITEA_INSTANCE/ $GITEA_DIR/frontend/current
|
[[ -d $GITEA_DIR/frontend/$GITEA_INSTANCE ]] && rsync -a $GITEA_DIR/frontend/$GITEA_INSTANCE/ $GITEA_DIR/frontend/current
|
||||||
|
|
||||||
|
[[ $Template = true ]] && ini_gen $([[ $Lock = false ]] && echo "-i") $GITEA_INSTANCE
|
||||||
|
Ini=${GITEA_DIR}/config/${GITEA_INSTANCE}.ini
|
||||||
|
[[ ! -f "$Ini" ]] && { echo "no ini file $Ini, aborting" ; exit; }
|
||||||
|
|
||||||
export GITEA_WORK_DIR=$GITEA_DATA_DIR
|
export GITEA_WORK_DIR=$GITEA_DATA_DIR
|
||||||
export GITEA_CUSTOM=$GITEA_DIR/frontend/current
|
export GITEA_CUSTOM=$GITEA_DIR/frontend/current
|
||||||
export USER=sysadmin
|
export USER=sysadmin
|
||||||
export HOME=/home/sysadmin
|
export HOME=/home/sysadmin
|
||||||
echo Running: $GITEA_BIN web -c $INI.ini
|
echo Running: $GITEA_BIN web -c $Ini
|
||||||
echo Server repos/logs/data/db will be $GITEA_DATA_DIR
|
echo Git Server repos/logs/data/db will be in $GITEA_DATA_DIR
|
||||||
$GITEA_BIN web -c $INI.ini
|
$GITEA_BIN web -c $Ini
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
# Gitea Systemd Template File
|
||||||
|
# %i is the instance which must have corresponding %i.ini file in config/
|
||||||
|
# if using a tmpl file you must 'install' gitea first using
|
||||||
|
# this must installed run via sdinstall script so
|
||||||
|
# @d can be replaced by the Gitea run directory to be stored in GITEA_DIR
|
||||||
|
# To use this service with a custom GITEA_DATA_DIR that must be exported in 'env/<instance>.env'
|
||||||
|
# Otherwise it will use the default which is GITEA_DIR/data
|
||||||
|
[Unit]
|
||||||
|
Description=Gitea (Git with a cup of tea)
|
||||||
|
After=syslog.target
|
||||||
|
After=network.target
|
||||||
|
# if localtion of Gitea run and data files depend on mounts
|
||||||
|
# then Requires and After must set
|
||||||
|
# note, subdirectories use - delimiter not /
|
||||||
|
Requires=opt.mount
|
||||||
|
After=opt.mount
|
||||||
|
Requires=mnt-data.mount
|
||||||
|
After=mnt-data.mount
|
||||||
|
# using sqlite so don't need to wait on any of these
|
||||||
|
#After=mysqld.service
|
||||||
|
#After=postgresql.service
|
||||||
|
#After=memcached.service
|
||||||
|
#After=redis.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# Uncomment and Modify these two values if you have
|
||||||
|
# repos with lots of files and get an HTTP error 500 because
|
||||||
|
# of that
|
||||||
|
#
|
||||||
|
#LimitMEMLOCK=infinity
|
||||||
|
#LimitNOFILE=65535
|
||||||
|
RestartSec=5s
|
||||||
|
Type=simple
|
||||||
|
User=sysadmin
|
||||||
|
Group=sysadmin
|
||||||
|
Environment=GITEA_DIR=@d
|
||||||
|
ExecStart=/bin/bash -c '${GITEA_DIR}/scripts/run %i'
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
|
SDDIR="/etc/systemd/system"
|
||||||
|
ServiceFile=$GITEA_DIR/scripts/systemd/gitea@.service
|
||||||
|
echo "Installing Template Service file at $ServiceFile"
|
||||||
|
echo ---- Service file as written to $SDDIR ----
|
||||||
|
cat $ServiceFile | sed 's:@d:'$GITEA_DIR':'g | sudo tee $SDDIR/gitea@.service
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
||||||
|
journalctl -u "$Service" | tail -f -n ${2:-50}
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
||||||
|
systemctl is-active --quiet $Service && \
|
||||||
|
sudo systemctl enable $Service || \
|
||||||
|
echo "can't persist $Instance as it must be running first"
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
||||||
|
sudo systemctl restart $Service
|
||||||
|
sleep 5
|
||||||
|
systemctl is-active --quiet $Service && \
|
||||||
|
echo $ServiceName $Instance was sucessfully restarted || \
|
||||||
|
(echo error: unable to restart $Service; "$(dirname "$BASH_SOURCE")"/log $Instance 20;)
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
||||||
|
if systemctl is-active --quiet $Service; then
|
||||||
|
echo $Service is already running
|
||||||
|
else
|
||||||
|
echo starting $Service....
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl start $Service
|
||||||
|
sleep 5
|
||||||
|
systemctl is-active --quiet $Service && \
|
||||||
|
echo $ServiceName $Instance is now running || \
|
||||||
|
(echo error: unable to start $Service; "$(dirname "$BASH_SOURCE")"/log $Instance 20;)
|
||||||
|
fi
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
||||||
|
if systemctl is-active --quiet $Service; then
|
||||||
|
echo stopping $Service...
|
||||||
|
sudo systemctl stop $Service
|
||||||
|
sleep 5
|
||||||
|
systemctl is-active --quiet $Service && \
|
||||||
|
(echo error: unable to stop $Instance; "$(dirname "$BASH_SOURCE")"/log $Instance 20;) || \
|
||||||
|
echo $Instance is now stopped
|
||||||
|
else
|
||||||
|
echo $Instance is already stopped
|
||||||
|
fi
|
|
@ -0,0 +1,4 @@
|
||||||
|
ServiceName=gitea
|
||||||
|
Instance=$1
|
||||||
|
[[ ! $1 ]] && echo warning no instance supplied using default && Instance=default
|
||||||
|
Service=$ServiceName@$Instance
|
|
@ -1,65 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# dependencies, jq
|
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(readlink -f "$BASH_SOURCE")"; pwd -P)")"
|
||||||
# if you have run into github api anonymous access limits which happens during debugging/dev then add user and token here or sourced from a separate file
|
|
||||||
# . ~/githubapitoken
|
|
||||||
#GITHUB_USER=""
|
|
||||||
#GITHUB_TOKEN=""
|
|
||||||
|
|
||||||
[[ $(command -v jq &> /dev/null) ]] && echo jq is required, install via \'sudo apt install jq\' && exit
|
|
||||||
|
|
||||||
[[ ! $GITEA_DIR ]] && export GITEA_DIR="$(dirname "$(cd "$(dirname "$BASH_SOURCE")"; pwd -P)")"
|
|
||||||
source $GITEA_DIR/scripts/library
|
source $GITEA_DIR/scripts/library
|
||||||
|
|
||||||
REPO=go-gitea/gitea
|
download_bin "$@"
|
||||||
|
|
||||||
if [ "$GITHUB_TOKEN" != "" ]; then
|
|
||||||
echo using access token with script
|
|
||||||
echo $GITHUB_USER $GITHUB_TOKEN
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ARCHIVE=tar.gz
|
|
||||||
# [ "$OS" == "windows" ] && ARCHIVE=zip
|
|
||||||
OS=$(get_OS)
|
|
||||||
ARCH=$(get_arch)
|
|
||||||
[[ ! $OS ]] && echo non supported OS $OS && exit
|
|
||||||
[[ ! $ARCH ]] && echo non supported architecture $ARCH && exit
|
|
||||||
echo Gitea Upgrade/Install for
|
|
||||||
echo Operating System $OS
|
|
||||||
echo Architecture $ARCH
|
|
||||||
RECORD=$(curl -u $GITHUB_USER:$GITHUB_TOKEN -s https://api.github.com/repos/$REPO/releases/latest)
|
|
||||||
NEW_VER=$(echo $RECORD | jq -r '.tag_name')
|
|
||||||
[ "$NEW_VER" ] && echo $NEW_VER is latest version available from https://github.com/c$REPO/releases
|
|
||||||
echo checking current gitea installed version
|
|
||||||
VER=$(version)
|
|
||||||
if [[ "$NEW_VER" == "v$VER" ]]; then
|
|
||||||
echo gitea is up to date, nothing to upgrade, v$VER
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
[[ $VER ]] && echo updating v$VER to $NEW_VER || echo no current installed gitea binary, installing $NEW_VER
|
|
||||||
fi
|
|
||||||
|
|
||||||
URL=$(echo $RECORD | \
|
|
||||||
jq -r \
|
|
||||||
--arg os $OS \
|
|
||||||
--arg arch $ARCH \
|
|
||||||
--arg archnot "$ARCH." \
|
|
||||||
'.assets[] | select( .name | contains($os)) |
|
|
||||||
select (.name | contains($arch)) |
|
|
||||||
select (.name | contains($archnot) | not )
|
|
||||||
.browser_download_url' \
|
|
||||||
)
|
|
||||||
|
|
||||||
echo $URL
|
|
||||||
|
|
||||||
if [ $URL ]; then
|
|
||||||
echo "Downloading Gitea Binary at $URL"
|
|
||||||
wget --user=-u $GITHUB_USER --password=$GITHUB_TOKEN -q -O $GITEA_DIR/gitea.bin $URL
|
|
||||||
if ( [[ $? -eq 0 ]] && [[ "$NEW_VER" == *"$(version)"* ]] ); then
|
|
||||||
chmod +x $GITEA_DIR/gitea.bin
|
|
||||||
echo upgrade succeeded, $GITEA_DIR/gitea.bin version is $(version)
|
|
||||||
else
|
|
||||||
echo upgrade from $URL failed
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo unabled to determine download url
|
|
||||||
fi
|
|
||||||
|
|
Loading…
Reference in New Issue