First commit

Initialize the configurations
This commit is contained in:
Awiteb 2024-03-01 23:55:08 +03:00
commit b340832c7f
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F
6 changed files with 946 additions and 0 deletions

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2024, Awiteb <a@4rs.nl>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

45
README.md Normal file
View file

@ -0,0 +1,45 @@
# Awiteb's forgejo personal instance
This is my personal instance of forgejo. the place where I hack.
## What is forgejo?
See https://forgejo.org
## What is this configurations aims to do?
Is just a personal instance, means that you are only one have rights to do anything.
Others are only contributors means that they can only fork your repository and make pull requests and create issues,
they can't create repositories.
## Imortant notes
After you create your account, you need to change your account visibility to public, by going to your profile and then click on the settings and then change the visibility to public, then change the [app.ini](/forgejo/forgejo/conf/app.ini) and remove the `public` visibility from the `ALLOWED_USER_VISIBILITY_MODES`. This will make you the only visible user in the instance.
## Secrets
Forgejo will add the secrets to the [app.ini](/forgejo/forgejo/conf/app.ini) file, so make sure to not remove the [app.ini](/forgejo/forgejo/conf/app.ini) file from the repository, and do not share it with anyone.
## How to use this configuration?
Just clone this repository, then read the [app.ini](/forgejo/forgejo/conf/app.ini) file and changes the values to your needs, then run the following command:
```bash
sed -i -e "s/{SHARED_SECRET}/$(openssl rand -hex 20)/" docker-compose.yml
docker-compose up -d
```
The instance will be available at `http://0.0.0.0:8080` so proxy it to your domain.
## Upgrading
When you want to upgrade the forgejo version, change the version in the [docker-compose.yml](/docker-compose.yml) file and then remove the containers
by running `docker-compose rm -s -f` and then run `docker-compose up -d` again.
## Restaring
When you want to restart the forgejo, do not run `docker-compose restart` I see that makes some changes to the configuration, so it's better to remove the containers by running `docker-compose rm -s -f` and then run `docker-compose up -d` again.
## Database
Is using sqlite3, and is more than enough for personal use.
## Backup
The data is stored in the [forgejo](/forgejo) directory and [forgejo-runner](/forgejo-runner) directory, so you can backup them.
The containers are stateless, so it's do not store any data.
## How to contribute?
Make issue first to discuss the changes, then make pull request (if the issue is accepted)
## License
The configuration is licensed under the MIT License. See [LICENSE](/LICENSE) file for more information.

67
docker-compose.yml Normal file
View file

@ -0,0 +1,67 @@
# Copyright 2023 The Forgejo Authors.
# SPDX-License-Identifier: MIT
version: "3"
services:
docker-in-docker:
image: docker:dind
container_name: runner-docker
privileged: true
command: [ "dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false" ]
forgejo:
image: codeberg.org/forgejo/forgejo:1.21
container_name: forgejo
command: >-
bash -c '
/bin/s6-svscan /etc/s6 &
sleep 10 ;
su -c "forgejo forgejo-cli actions register --secret {SHARED_SECRET} --labels debian:lxc://debian:bullseye --version 3.3.0" git ;
sleep infinity
'
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO_WORK_DIR=/data/forgejo
- FORGEJO_CUSTOM=/data/forgejo
volumes:
- ./forgejo:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 8080:3000
runner-register:
image: code.forgejo.org/forgejo/runner:3.3.0
container_name: runner-register
links:
- docker-in-docker
- forgejo
environment:
DOCKER_HOST: tcp://docker-in-docker:2375
volumes:
- ./forgejo-runner:/data
command: >-
bash -ec '
while : ; do
forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret {SHARED_SECRET} && break ;
sleep 1 ;
done ;
chown -R 1000:1000 /data
'
runner-daemon:
image: code.forgejo.org/forgejo/runner:3.3.0
container_name: runner-daemon
links:
- docker-in-docker
- forgejo
environment:
DOCKER_HOST: tcp://docker-in-docker:2375
depends_on:
runner-register:
condition: service_completed_successfully
volumes:
- ./forgejo-runner:/data
command: "forgejo-runner --config config.yml daemon"

80
forgejo-runner/config.yml Normal file
View file

@ -0,0 +1,80 @@
log:
# The level of logging, can be trace, debug, info, warn, error, fatal
level: info
runner:
# Where to store the registration result.
file: .runner
# Execute how many tasks concurrently at the same time.
capacity: 3
# The timeout for a job to be finished.
# Please note that the Forgejo instance also has a timeout (3h by default) for the job.
# So the job could be stopped by the Forgejo instance if it's timeout is shorter than this.
timeout: 30m
# Whether skip verifying the TLS certificate of the Forgejo instance.
insecure: false
# The timeout for fetching the job from the Forgejo instance.
fetch_timeout: 15s
# The interval for fetching the job from the Forgejo instance.
fetch_interval: 10s
# The labels of a runner are used to determine which jobs the runner can run, and how to run them.
# Like: ["macos-arm64:host", "ubuntu-latest:docker://node:16-bullseye", "ubuntu-22.04:docker://node:16-bullseye"]
# If it's empty when registering, it will ask for inputting labels.
# If it's empty when execute `deamon`, will use labels in `.runner` file.
labels: ["debian:lxc://debian:bullseye"]
cache:
# Enable cache server to use actions/cache.
enabled: true
# The directory to store the cache data.
# If it's empty, the cache data will be stored in $HOME/.cache/actcache.
dir: ""
# The host of the cache server.
# It's not for the address to listen, but the address to connect from job containers.
# So 0.0.0.0 is a bad choice, leave it empty to detect automatically.
host: ""
# The port of the cache server.
# 0 means to use a random available port.
port: 0
# The external cache server URL. Valid only when enable is true.
# If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself.
# The URL should generally end with "/".
external_server: ""
container:
# Specifies the network to which the container will connect.
# Could be host, bridge or the name of a custom network.
# If it's empty, create a network automatically.
network: host
# Whether to create networks with IPv6 enabled. Requires the Docker daemon to be set up accordingly.
# Only takes effect if "network" is set to "".
enable_ipv6: false
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
privileged: false
# And other options to be used when the container is started (eg, --add-host=my.forgejo.url:host-gateway).
options:
# The parent directory of a job's working directory.
# If it's empty, /workspace will be used.
workdir_parent:
# Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob
# You can specify multiple volumes. If the sequence is empty, no volumes can be mounted.
# For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to:
# valid_volumes:
# - data
# - /src/*.json
# If you want to allow any volume, please use the following configuration:
# valid_volumes:
# - '**'
valid_volumes: []
# overrides the docker client host with the specified one.
# If it's empty, act_runner will find an available docker host automatically.
# If it's "-", act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers.
# If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work.
docker_host: ""
# Pull docker image(s) even if already present
force_pull: false
host:
# The parent directory of a job's working directory.
# If it's empty, $HOME/.cache/act/ will be used.
workdir_parent:

View file

@ -0,0 +1,177 @@
; My personal forgejo instance configuration, you can use this as a template for your own forgejo instance.
; This configuration aims to be personal git hosting instance, and only allows new registers user to fork
; repositories and create issues and pull requests. It also has a few other settings that I like to have.
; Also make sure to create `.profile` repoo in your account, and add a `README.md` file, becuase your account will be the landing page
; of your forgejo instance, this will make your forgejo instance look better and more personal.
;
; You need to change every value that has `CHANGE_ME` comment to your own value.
;
; Forgejo version: 1.21
; License : MIT
;
; Copyright (c) 2024 Awiteb <a@4rs.nl>
; CHANGE_ME
APP_NAME = Awiteb's Forgejo Instance
RUN_MODE = prod
RUN_USER = git
WORK_PATH = /data/forgejo
[ui]
DEFAULT_THEME = github
THEMES = github,forgejo-auto,forgejo-light,forgejo-dark,arc-green
CUSTOM_EMOJIS = forgejo,codeberg,git
ONLY_SHOW_RELEVANT_REPOS = true
[ui.meta]
; CHANGE_ME
AUTHOR = Awiteb
; CHANGE_ME
DESCRIPTION = My personal forgejo instance. Where I hack on things.
[repository]
ROOT = /data/git/repositories
DISABLED_REPO_UNITS = repo.wiki,repo.ext_wiki,repo.packages
DEFAULT_REPO_UNITS = repo.code,repo.releases,repo.actions,repo.issues,repo.pulls
DISABLE_STARS = true
DEFAULT_BRANCH = master
; This will make the users unable to create new repositories
MAX_CREATION_LIMIT = 0
; but they can still fork repositories and create issues and pull requests
ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT = true
PREFERRED_LICENSES = MIT,GPL-3.0-only,GPL-3.0-or-later,AGPL-3.0-only,AGPL-3.0-or-later
[repository.pull-request]
DEFAULT_MERGE_STYLE = squash
DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT = -1
DEFAULT_MERGE_MESSAGE_SIZE = -1
DEFAULT_MERGE_MESSAGE_ALL_AUTHORS = true
DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY = false
POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES = true
TEST_CONFLICTING_PATCHES_WITH_GIT_APPLY = true
[repository.issue]
MAX_PINNED = 5
[repository.upload]
ENABLED = false
; TEMP_PATH = /data/forgejo/uploads
[repository.signing]
DEFAULT_TRUST_MODEL = committer
[repository.local]
LOCAL_COPY_PATH = /data/forgejo/tmp/local-repo
[server]
APP_DATA_PATH = /data/forgejo
PROTOCOL = http
DOMAIN = 0.0.0.0
HTTP_PORT = 3000
; CHANGE_ME (Your full instance URL)
ROOT_URL = https://example.com/
DISABLE_SSH = true
OFFLINE_MODE = false
; CHANGE_ME (Your username)
LANDING_PAGE = /awiteb
; Sqlite3 is enough for personal use
[database]
PATH = /data/forgejo/forgejo.db
DB_TYPE = sqlite3
HOST = localhost:3306
NAME = forgejo
USER = root
PASSWD =
LOG_SQL = false
SCHEMA =
SSL_MODE = disable
[indexer]
ISSUE_INDEXER_PATH = /data/forgejo/indexers/issues.bleve
REPO_INDEXER_ENABLED = true
REPO_INDEXER_REPO_TYPES = sources
[session]
PROVIDER_CONFIG = /data/forgejo/sessions
PROVIDER = file
[picture]
ENABLE_FEDERATED_AVATAR = true
[cache]
ADAPTER = memory
ITEM_TTL = 5h
[cache.last_commit]
ENABLED = false
[attachment]
PATH = /data/forgejo/attachments
ALLOWED_TYPES = .patch,.png,.jpg,.jpeg,.gif,.webp,.svg,mp4,.mov,webm,.zip,.gz,.tgz
[log]
MODE = console
LEVEL = debug
ROOT_PATH = /data/forgejo/log
[admin]
DISABLE_REGULAR_ORG_CREATION = true
[security]
INSTALL_LOCK = true
COOKIE_USERNAME = forgejo_user
COOKIE_REMEMBER_NAME = forgejo_incredible
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
PASSWORD_HASH_ALGO = pbkdf2_hi
[mailer]
ENABLED = false
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true
[cron]
ENABLED = false
[packages]
ENABLED = false
[api]
ENABLE_SWAGGER = false
[other]
SHOW_FOOTER_VERSION = false
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false
ENABLE_SITEMAP = false
[service.explore]
DISABLE_USERS_PAGE = true
[service]
;; Registration configuration
DISABLE_REGISTRATION = false
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
EMAIL_DOMAIN_BLOCKLIST = gmail.com,yahoo.com,icloud.com,hotmail.com
;; Captcha configuration
ENABLE_CAPTCHA = true
REQUIRE_CAPTCHA_FOR_LOGIN = true
REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA = true
;; Repository/Organization configuration
AUTO_WATCH_NEW_REPOS = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
DEFAULT_ORG_MEMBER_VISIBLE = true
;; Profile configuration
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_USER_VISIBILITY = private
; CHANGE_ME (after you have created your account, you can remove `public` from the list)
; Before you remove `public` from the list, make sure you change your account visibility to `public`
ALLOWED_USER_VISIBILITY_MODES = private,public
DEFAULT_ENABLE_TIMETRACKING = true
USER_LOCATION_MAP_URL = https://www.openstreetmap.org/
NO_REPLY_ADDRESS = noreply.localhost

View file

@ -0,0 +1,556 @@
/*
This file is written by Rainnny, the original file
location is https://git.rainnny.club/Rainnny/gitea-github-theme/src/branch/master/theme-github.css
*/
/* Made by Rainnny <3 */
.chroma {
background-color: var(--color-code-bg);
}
.chroma .lntd {
vertical-align: top;
border: 0;
margin: 0;
padding: 0;
}
.chroma .lntable {
border-spacing: 0;
border: 0;
width: auto;
margin: 0;
padding: 0;
display: block;
overflow: auto;
}
.chroma .hl {
width: 100%;
display: block;
}
.chroma .lnt,
.chroma .ln {
margin-right: 0.4em;
padding: 0 0.4em;
}
.chroma .gs {
font-weight: var(--font-weight-semibold);
}
.chroma .gl {
text-decoration: underline;
}
.chroma .bp {
color: #fabd2f;
}
.chroma .c,
.chroma .c1,
.chroma .ch,
.chroma .cm {
color: #777e94;
}
.chroma .cp {
color: #8ec07c;
}
.chroma .cpf {
color: #79c0ff;
}
.chroma .cs {
color: #9075cd;
}
.chroma .dl {
color: #79c0ff;
}
.chroma .gd {
color: #fff;
background-color: #5f3737;
}
.chroma .ge {
color: #ddee30;
}
.chroma .gh {
color: #ffaa10;
}
.chroma .gi {
color: #fff;
background-color: #3a523a;
}
.chroma .go {
color: #777e94;
}
.chroma .gp {
color: #ebdbb2;
}
.chroma .gr {
color: #f43;
}
.chroma .gs {
color: #ebdbb2;
}
.chroma .gt {
color: #7ee787;
}
.chroma .gu {
color: #a5d6ff;
}
.chroma .il {
color: #79c0ff;
}
.chroma .k {
color: #ff7b72;
}
.chroma .kc {
color: #79c0ff;
}
.chroma .kd {
color: #ff7b72;
}
.chroma .kn {
color: #ff7b72;
}
.chroma .kp {
color: #5f8700;
}
.chroma .kr {
color: #7ee787;
}
.chroma .kt {
color: #ff7b72;
}
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .mo {
color: #79c0ff;
}
.chroma .n {
color: #c9d1d9;
}
.chroma .na {
color: #d2a8ff;
}
.chroma .nb {
color: #a5d6ff;
}
.chroma .nc {
color: #e6edf3;
}
.chroma .nd {
color: #79c0ff;
}
.chroma .ne {
color: #7ee787;
}
.chroma .nf,
.chroma .ni {
color: #d2a8ff;
}
.chroma .nl {
color: #7ee787;
}
.chroma .nn {
color: #e6edf3;
}
.chroma .no {
color: #79c0ff;
}
.chroma .nt {
color: #7ee787;
}
.chroma .nv {
color: #ebdbb2;
}
.chroma .nx {
color: #b6bac5;
}
.chroma .o {
color: #7ee787;
}
.chroma .ow {
color: #5f8700;
}
.chroma .p {
color: #d2d4db;
}
.chroma .s,
.chroma .s1,
.chroma .s2 {
color: #a5d6ff;
}
.chroma .sa {
color: #79c0ff;
}
.chroma .sb {
color: #a5d6ff;
}
.chroma .sc {
color: #79c0ff;
}
.chroma .sd {
color: #777e94;
}
.chroma .se {
color: #7ee787;
}
.chroma .sh {
color: #79c0ff;
}
.chroma .si {
color: #ffaa10;
}
.chroma .sr {
color: #9075cd;
}
.chroma .ss {
color: #7ee787;
}
.chroma .sx {
color: #ffaa10;
}
.chroma .vc {
color: #7ee787;
}
.chroma .vg,
.chroma .vi {
color: #ffaa10;
}
.chroma .w {
color: #7f8699;
}
.CodeMirror.cm-s-default .cm-property,
.CodeMirror.cm-s-paper .cm-property {
color: #a0cc75;
}
.CodeMirror.cm-s-default .cm-header,
.CodeMirror.cm-s-paper .cm-header {
color: #9daccc;
}
.CodeMirror.cm-s-default .cm-quote,
.CodeMirror.cm-s-paper .cm-quote {
color: #090;
}
.CodeMirror.cm-s-default .cm-keyword,
.CodeMirror.cm-s-paper .cm-keyword {
color: #cc8a61;
}
.CodeMirror.cm-s-default .cm-atom,
.CodeMirror.cm-s-paper .cm-atom {
color: #ef5e77;
}
.CodeMirror.cm-s-default .cm-number,
.CodeMirror.cm-s-paper .cm-number {
color: #ff5656;
}
.CodeMirror.cm-s-default .cm-def,
.CodeMirror.cm-s-paper .cm-def {
color: #e4e4e4;
}
.CodeMirror.cm-s-default .cm-variable-2,
.CodeMirror.cm-s-paper .cm-variable-2 {
color: #00bdbf;
}
.CodeMirror.cm-s-default .cm-variable-3,
.CodeMirror.cm-s-paper .cm-variable-3 {
color: #085;
}
.CodeMirror.cm-s-default .cm-comment,
.CodeMirror.cm-s-paper .cm-comment {
color: #8e9ab3;
}
.CodeMirror.cm-s-default .cm-string,
.CodeMirror.cm-s-paper .cm-string {
color: #a77272;
}
.CodeMirror.cm-s-default .cm-string-2,
.CodeMirror.cm-s-paper .cm-string-2 {
color: #f50;
}
.CodeMirror.cm-s-default .cm-meta,
.CodeMirror.cm-s-paper .cm-meta,
.CodeMirror.cm-s-default .cm-qualifier,
.CodeMirror.cm-s-paper .cm-qualifier {
color: #ffb176;
}
.CodeMirror.cm-s-default .cm-builtin,
.CodeMirror.cm-s-paper .cm-builtin {
color: #b7c951;
}
.CodeMirror.cm-s-default .cm-bracket,
.CodeMirror.cm-s-paper .cm-bracket {
color: #997;
}
.CodeMirror.cm-s-default .cm-tag,
.CodeMirror.cm-s-paper .cm-tag {
color: #f1d273;
}
.CodeMirror.cm-s-default .cm-attribute,
.CodeMirror.cm-s-paper .cm-attribute {
color: #bfcc70;
}
.CodeMirror.cm-s-default .cm-hr,
.CodeMirror.cm-s-paper .cm-hr {
color: #999;
}
.CodeMirror.cm-s-default .cm-url,
.CodeMirror.cm-s-paper .cm-url {
color: #c5cfd0;
}
.CodeMirror.cm-s-default .cm-link,
.CodeMirror.cm-s-paper .cm-link {
color: #d8c792;
}
.CodeMirror.cm-s-default .cm-error,
.CodeMirror.cm-s-paper .cm-error {
color: #dbdbeb;
}
:root {
--is-dark-theme: true;
--color-primary: #4b80ca;
--color-primary-contrast: #fff;
--color-primary-dark-1: #739cb3;
--color-primary-dark-2: #40aaff;
--color-primary-dark-3: #92b4c4;
--color-primary-dark-4: #a1bbcd;
--color-primary-dark-5: #cfddc1;
--color-primary-dark-6: #e7eee0;
--color-primary-dark-7: #f8faf6;
--color-primary-light-1: #4b80ca;
--color-primary-light-2: #437aad;
--color-primary-light-3: #415b8b;
--color-primary-light-4: #25425a;
--color-primary-light-5: #223546;
--color-primary-light-6: #131923;
--color-primary-light-7: #06090b;
--color-primary-alpha-10: #3683c019;
--color-primary-alpha-20: #3683c033;
--color-primary-alpha-30: #3683c04b;
--color-primary-alpha-40: #3683c066;
--color-primary-alpha-50: #3683c080;
--color-primary-alpha-60: #3683c099;
--color-primary-alpha-70: #3683c0b3;
--color-primary-alpha-80: #3683c0cc;
--color-primary-alpha-90: #3683c0e1;
--color-primary-hover: var(--color-primary-light-1);
--color-primary-active: var(--color-primary-light-2);
--color-secondary: #2c2f35;
--color-secondary-dark-1: #505665;
--color-secondary-dark-2: #5b6273;
--color-secondary-dark-3: #71798e;
--color-secondary-dark-4: #7f8699;
--color-secondary-dark-5: #8c93a4;
--color-secondary-dark-6: #9aa0af;
--color-secondary-dark-7: #a8adba;
--color-secondary-dark-8: #c4c7d0;
--color-secondary-dark-9: #dfe1e6;
--color-secondary-dark-10: #edeef1;
--color-secondary-dark-11: #fbfbfc;
--color-secondary-dark-12: #eeeff2;
--color-secondary-dark-13: #fbfbfc;
--color-secondary-light-1: #373b46;
--color-secondary-light-2: #292c34;
--color-secondary-light-3: #1c1e23;
--color-secondary-light-4: #0e0f11;
--color-secondary-alpha-10: #2c2f35;
--color-secondary-alpha-20: #2c2f3533;
--color-secondary-alpha-30: #2c2f354b;
--color-secondary-alpha-40: #2c2f3566;
--color-secondary-alpha-50: #2c2f3580;
--color-secondary-alpha-60: #2c2f3599;
--color-secondary-alpha-70: #2c2f35b3;
--color-secondary-alpha-80: #2c2f35cc;
--color-secondary-alpha-90: #2c2f35e1;
--color-red: #da3737;
--color-orange: #f17a2b;
--color-yellow: #f3c640;
--color-olive: #c8df36;
--color-green: #3bc75b;
--color-teal: #69d4cf;
--color-blue: #4b80ca;
--color-violet: #754ad3;
--color-purple: #b65dd4;
--color-pink: #e04b9f;
--color-brown: #a86d45;
--color-black: #141516;
--color-grey: #797c85;
--color-gold: #d4b74c;
--color-white: #ffffff;
--color-red-light: #d15a5a;
--color-orange-light: #f6a066;
--color-yellow-light: #eaaf03;
--color-olive-light: #abc016;
--color-green-light: #93b373;
--color-teal-light: #00b6ad;
--color-blue-light: #4e96cc;
--color-violet-light: #9b79e4;
--color-purple-light: #ba6ad5;
--color-pink-light: #d74397;
--color-brown-light: #b08061;
--color-black-light: #3f4555;
--color-red-dark-1: #c23636;
--color-orange-dark-1: #f38236;
--color-yellow-dark-1: #b88a03;
--color-olive-dark-1: #839311;
--color-green-dark-1: #7a9e55;
--color-teal-dark-1: #00837c;
--color-blue-dark-1: #347cb3;
--color-violet-dark-1: #7b4edb;
--color-purple-dark-1: #a742c9;
--color-pink-dark-1: #be297d;
--color-brown-dark-1: #94674a;
--color-black-dark-1: #292d38;
--color-red-dark-2: #ad3030;
--color-orange-dark-2: #f16e17;
--color-yellow-dark-2: #a37a02;
--color-olive-dark-2: #74820f;
--color-green-dark-2: #6c8c4c;
--color-teal-dark-2: #00746e;
--color-blue-dark-2: #2e6e9f;
--color-violet-dark-2: #6733d6;
--color-purple-dark-2: #9834b9;
--color-pink-dark-2: #a9246f;
--color-brown-dark-2: #835b42;
--color-black-dark-2: #252832;
--color-console-bg: #11171f;
--color-ansi-black: var(--color-black);
--color-ansi-red: var(--color-red);
--color-ansi-green: var(--color-green);
--color-ansi-yellow: var(--color-yellow);
--color-ansi-blue: var(--color-blue);
--color-ansi-magenta: var(--color-pink);
--color-ansi-cyan: var(--color-teal);
--color-ansi-white: var(--color-console-fg-subtle);
--color-ansi-bright-black: var(--color-black-light);
--color-ansi-bright-red: var(--color-red-light);
--color-ansi-bright-green: var(--color-green-light);
--color-ansi-bright-yellow: var(--color-yellow-light);
--color-ansi-bright-blue: var(--color-blue-light);
--color-ansi-bright-magenta: var(--color-pink-light);
--color-ansi-bright-cyan: var(--color-teal-light);
--color-ansi-bright-white: var(--color-console-fg);
--color-grey: #505665;
--color-grey-light: #a1a6b7;
--color-gold: #b1983b;
--color-white: #fff;
--color-diff-removed-word-bg: #6f3333;
--color-diff-added-word-bg: #3c653c;
--color-diff-removed-row-bg: #3c2626;
--color-diff-moved-row-bg: #818044;
--color-diff-added-row-bg: #283e2d;
--color-diff-removed-row-border: #634343;
--color-diff-moved-row-border: #bcca6f;
--color-diff-added-row-border: #314a37;
--color-diff-inactive: #353846;
--color-error-border: #a04141;
--color-error-bg: #522;
--color-error-bg-active: #744;
--color-error-bg-hover: #633;
--color-error-text: #f9cbcb;
--color-success-border: #458a57;
--color-success-bg: #284034;
--color-success-text: #6cc664;
--color-warning-border: #bb9d00;
--color-warning-bg: #3a3a30;
--color-warning-text: #fbbd08;
--color-info-border: #306090;
--color-info-bg: #26354c;
--color-info-text: #38a8e8;
--color-red-badge: #db2828;
--color-red-badge-bg: #db28281a;
--color-red-badge-hover-bg: #db28284d;
--color-green-badge: #21ba45;
--color-green-badge-bg: #21ba451a;
--color-green-badge-hover-bg: #21ba454d;
--color-yellow-badge: #fbbd08;
--color-yellow-badge-bg: #fbbd081a;
--color-yellow-badge-hover-bg: #fbbd084d;
--color-orange-badge: #f2711c;
--color-orange-badge-bg: #f2711c1a;
--color-orange-badge-hover-bg: #f2711c4d;
--color-git: #f05133;
--color-body: #0d1117;
--color-box-header: #161b22;
--color-box-body: #11171f;
--color-box-body-highlight: #262b36;
--color-text-dark: #dbe0ea;
--color-text: #bbc0ca;
--color-text-light: #a6aab5;
--color-text-light-1: rgb(125, 133, 144);
--color-text-light-2: #8a8e99;
--color-text-light-3: #707687;
--color-footer: #010409;
--color-timeline: #4c525e;
--color-input-text: #d5dbe6;
--color-input-background: #2c2f35;
--color-input-toggle-background: #454a57;
--color-input-border: #2c2f35;
--color-input-border-hover: #505667;
--color-header-wrapper: #0d1117;
--color-header-wrapper-transparent: #20243000;
--color-light: #00000028;
--color-light-mimic-enabled: rgba(
0,
0,
0,
calc(40 / 255 * 222 / 255 / var(--opacity-disabled))
);
--color-light-border: #ffffff28;
--color-hover: #ffffff19;
--color-active: #ffffff24;
--color-menu: #0d1117;
--color-card: #0d1117;
--color-markup-table-row: #ffffff06;
--color-markup-code-block: #ffffff16;
--color-button: #1e252e;
--color-code-bg: #0d1117;
--color-code-sidebar-bg: #232834;
--color-shadow: #00000060;
--color-secondary-bg: #2c2f35;
--color-text-focus: #fff;
--color-expand-button: #3c404d;
--color-placeholder-text: #8a8e99;
--color-editor-line-highlight: var(--color-primary-light-5);
--color-project-board-bg: var(--color-secondary-light-2);
--color-caret: var(--color-text);
--color-reaction-bg: #ffffff12;
--color-reaction-hover-bg: var(--color-primary-light-4);
--color-reaction-active-bg: var(--color-primary-light-5);
--color-tooltip-text: #fff;
--color-tooltip-bg: #000000f0;
--color-nav-bg: #010409;
--color-nav-hover-bg: #383c47;
--color-label-text: #dfe3ec;
--color-label-bg: #7c84974b;
--color-label-hover-bg: #7c8497a0;
--color-label-active-bg: #7c8497;
--color-accent: var(--color-primary-light-1);
--color-small-accent: var(--color-primary-light-5);
--color-active-line: #534d1b;
accent-color: var(--color-accent);
color-scheme: dark;
}
.emoji[aria-label="check\ mark"],
.emoji[aria-label="currency\ exchange"],
.emoji[aria-label="TOP\ arrow"],
.emoji[aria-label="END\ arrow"],
.emoji[aria-label="ON! arrow"],
.emoji[aria-label="SOON\ arrow"],
.emoji[aria-label="heavy dollar sign"],
.emoji[aria-label="copyright"],
.emoji[aria-label="registered"],
.emoji[aria-label="trade\ mark"],
.emoji[aria-label="multiply"],
.emoji[aria-label="plus"],
.emoji[aria-label="minus"],
.emoji[aria-label="divide"],
.emoji[aria-label="curly\ loop"],
.emoji[aria-label="double curly loop"],
.emoji[aria-label="wavy\ dash"],
.emoji[aria-label="paw\ prints"],
.emoji[aria-label="musical\ note"],
.emoji[aria-label="musical\ notes"] {
filter: invert() hue-rotate(180deg);
}
.repository.file.list #repo-files-table tbody .svg.octicon-file-directory-fill,
.repository.file.list #repo-files-table tbody .svg.octicon-file-submodule {
color: #7d8590;
}