diff options
-rw-r--r-- | etc/cgitrc | 111 | ||||
-rw-r--r-- | etc/highlight/filetypes.conf | 185 | ||||
-rw-r--r-- | etc/nginx/nginx.conf | 190 | ||||
-rw-r--r-- | etc/pacman.d/hooks/highlight-css.hook | 13 | ||||
l--------- | etc/systemd/system/sockets.target.wants/uwsgi@cgit.socket | 1 | ||||
-rw-r--r-- | etc/uwsgi/cgit.ini | 14 | ||||
-rw-r--r-- | srv/http/master/index.html | 30 | ||||
-rw-r--r-- | srv/http/master/pub_pgp_key.asc | 100 | ||||
-rw-r--r-- | srv/http/master/pub_ssh_key.txt | 1 | ||||
-rwxr-xr-x | usr/lib/cgit/filters/about-formatting-edited.sh | 29 | ||||
-rwxr-xr-x | usr/lib/cgit/filters/syntax-highlighting-edited.sh | 33 | ||||
-rw-r--r-- | usr/share/webapps/cgit/highlight.css | 24 | ||||
-rw-r--r-- | usr/share/webapps/cgit/mycgit.css | 6 | ||||
-rw-r--r-- | var/lib/gitolite/.gitolite.rc | 202 |
14 files changed, 939 insertions, 0 deletions
diff --git a/etc/cgitrc b/etc/cgitrc new file mode 100644 index 00000000..df30d0a6 --- /dev/null +++ b/etc/cgitrc @@ -0,0 +1,111 @@ +# https://wiki.archlinux.org/title/Cgit#Configuration_of_cgit +# https://wiki.gentoo.org/wiki/User:Halcon/HOWTO_cgit_uwsgi_nginx +# `man cgitrc` + +cache-size=1000 +enable-index-owner=0 +mimetype-file=/etc/mime.types +# https://stackoverflow.com/questions/16182421/cgit-and-nginx-url-rewrite +virtual-root=/ + +# useful but may makes page generation slow, maybe disable +# can see the log via `journalctl -b -u uwsgi@cgit` and search less pager with sth. like `/[0-9]{3} msecs` +#enable-blame=1 +#enable-log-filecount=1 +#enable-log-linecount=1 +# showing branch merge, ex: https://git.flylightning.xyz/dwm_fly/log/?h=fly +#enable-commit-graph=1 + +# not very useful, maybe disable +#enable-follow-links=1 +#enable-subject-links=1 + +# `man cgitrc` uses $CGIT_REPO_URL instead of $CGIT_REPO_NAME, I guess maybe because repo name can be different from repo url? +clone-url=https://$HTTP_HOST/$CGIT_REPO_URL https://codeberg.org/flyxyz123/$CGIT_REPO_URL +# $HTTP_HOST not working for clone-prefix, not sure why, therefore I prefer clone-url over clone-prefix +#clone-prefix=https://git.flylightning.xyz/ https://codeberg.org/flyxyz123/ + +source-filter=/usr/lib/cgit/filters/syntax-highlighting-edited.sh +css=/mycgit.css + +about-filter=/usr/lib/cgit/filters/about-formatting-edited.sh +#readme=:README.markdown +#readme=:readme.markdown +#readme=:README.mdown +#readme=:readme.mdown +readme=:README.md +#readme=:readme.md +#readme=:README.mkd +#readme=:readme.mkd +#readme=:README.rst +#readme=:readme.rst +#readme=:README.html +#readme=:readme.html +#readme=:README.htm +#readme=:readme.htm +#readme=:README.txt +#readme=:readme.txt +readme=:README +#readme=:readme +#readme=:INSTALL.markdown +#readme=:install.markdown +#readme=:INSTALL.mdown +#readme=:install.mdown +#readme=:INSTALL.md +#readme=:install.md +#readme=:INSTALL.mkd +#readme=:install.mkd +#readme=:INSTALL.rst +#readme=:install.rst +#readme=:INSTALL.html +#readme=:install.html +#readme=:INSTALL.htm +#readme=:install.htm +#readme=:INSTALL.txt +#readme=:install.txt +#readme=:INSTALL +#readme=:install + +root-title=flylightning.xyz git repositories +root-desc= + +repo.url=config_local_arch +repo.path=/var/lib/gitolite/repositories/config_local_arch.git +repo.desc=Device dependent config files for Arch Linux, managed by https://git.flylightning.xyz/fsh/tree/sh/cfg (git bare repo method) + +repo.url=xcross +repo.path=/var/lib/gitolite/repositories/xcross.git +repo.desc=X11 draw a cross at cursor across screen + +repo.url=public_archive_codes +repo.path=/var/lib/gitolite/repositories/public_archive_codes.git +repo.desc=My mostly not used, not maintained, archived codes/configs + +repo.url=fly +repo.path=/var/lib/gitolite/repositories/fly.git +repo.desc=Arch Linux custom local repository + +repo.url=aur +repo.path=/var/lib/gitolite/repositories/aur.git +repo.desc=PKGBUILDs I maintain for AUR + +repo.url=fsh +repo.path=/var/lib/gitolite/repositories/fsh.git +repo.desc=My shell utilities + +section=Archived. Have license issues. + +repo.url=remote_plot +repo.path=/var/lib/gitolite/repositories/remote_plot.git +repo.desc=Archived. Has license issues. Plot on GUI a remote file updating using https://git.flylightning.xyz/mycan + +repo.url=mycan +repo.path=/var/lib/gitolite/repositories/mycan.git +repo.desc=Archived. Has license issues. Read CAN and write to a file. + +section=forks + +repo.url=dwm_fly +repo.path=/var/lib/gitolite/repositories/dwm_fly.git +repo.desc=My fork of https://git.suckless.org/dwm +#repo.readme=:dwm.1 diff --git a/etc/highlight/filetypes.conf b/etc/highlight/filetypes.conf new file mode 100644 index 00000000..5028b5c3 --- /dev/null +++ b/etc/highlight/filetypes.conf @@ -0,0 +1,185 @@ +-- Filename and shebang mapping +-- +-- Add an entry for a language syntax which is occupied by multiple source file extensions. +-- If there is only one extension, just name the lang file accordingly and it will work (no entry needed here). +-- The filetype entries in gui_files/ext/fileopenfilter.conf should also be updated for the GUI file dialogs. +-- +-- Extensions can be configured for multiple languages (see "asm", which is assigned to assembler and fasm). +-- The command line (CLI) and Qt GUI builds handle ambiguous assignments as follows: +-- - CLI: the first association listed here will be used +-- - GUI: a syntax selection prompt will be shown +-- +-- If a filename has no extension by convention (ie. makefile), it may be added here nevertheless or be +-- configured as "Shebang". +-- +-- You can assign complete filenames to a syntax with "Filenames", see the "cmake" entry. +-- To define both filenames and extensions, add two separate entries (see "sh" entry). +-- +-- A default input encoding can be set with an EncodingHint attribute (requires v. 3.55). +-- +-- The first filetypes.conf found in a highlight search directory wins. See README.adoc for search dirs. +-- +-- You can override specific settings in ~/.highlight/filetypes.conf like this: +-- +-- dofile "/etc/highlight/filetypes.conf" +-- +-- table.insert(FileMapping, { Lang="yourlang", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?yourlang]] }) + +FileMapping = { + + { Lang="abap", Extensions={"abp"} }, + { Lang="ada", Extensions={"adb", "ads", "a", "gnad"} }, + { Lang="agda", Extensions={"lagda"} }, + { Lang="alan", Extensions={"alan", "i"} }, + { Lang="algol", Extensions={"alg"} }, + { Lang="ampl", Extensions={"dat", "run"} }, + { Lang="amtrix", Extensions={"s4", "s4t", "s4h", "hnd", "t4"} }, + { Lang="assembler", Extensions={"asm", "a51", "29k", "68s", "68x", "x86"} }, + { Lang="fasm", Extensions={"asm", "inc"} }, + { Lang="asp", Extensions={"aspx", "ashx", "ascx"} }, + { Lang="ats", Extensions={"dats"} }, + { Lang="aspect", Extensions={"was", "wud"} }, + { Lang="ballerina", Extensions={"bal"} }, + { Lang="bat", Extensions={"cmd"} }, + { Lang="c", Extensions={"c++", "cpp", "cxx", "cc", "h", "hh", "hxx", "hpp", "cu", "inl", "ipp", "ino", "ixx", "cppm"} }, + { Lang="cmake", Filenames={"CMakeLists.txt"} }, + { Lang="charmm", Extensions={"inp"} }, + { Lang="clojure", Extensions={"boot", "cl2", "clj", "cljscm", "cljx", "hic"} }, + { Lang="coldfusion", Extensions={"cfc","cfm"} }, + { Lang="cobol", Extensions={"cob", "cbl"} }, + { Lang="crystal", Extensions={"cr"} }, + { Lang="coffeescript", Extensions={"coffee", "cakefile", "cjsx", "coffee", "iced"} }, + { Lang="conf", Extensions={"anacrontab"} }, + { Lang="delphi", Extensions={"pas", "dpr"} }, + { Lang="diff", Extensions={"patch"} }, + { Lang="dts", Extensions={"dtsi"} }, + { Lang="eiffel", Extensions={"e", "se"} }, + { Lang="elixir", Extensions={"ex", "exs", "heex"} }, + { Lang="erlang", Extensions={"hrl", "erl", "xrl", "yrl"} }, + { Lang="euphoria", Extensions={"ex", "exw", "wxu", "ew", "eu"} }, + { Lang="fortran77", Extensions={"f", "for", "ftn"} }, + { Lang="fortran90", Extensions={"f95", "f90"} }, + { Lang="gambas", Extensions={"class"} }, + { Lang="gdscript", Extensions={"gd"} }, + { Lang="haskell", Extensions={"hs"} }, + { Lang="hugo", Extensions={"hug"} }, + { Lang="ini", Extensions={"doxyfile", "desktop", "kdev3", "reg", "cfg", "inf", "config", ".gitconfig", "service", "network"} }, + { Lang="jam", Extensions={"jam", "ham"} }, + { Lang="java", Extensions={"groovy", "grv", "jenkinsfile", "gradle"} }, + { Lang="javascript", Extensions={"js"} }, + { Lang="julia", Extensions={"jl"} }, + { Lang="kotlin", Extensions={"kt", "kts"} }, + { Lang="limbo", Extensions={"b"} }, + { Lang="lisp", Extensions={"cl", "clisp", "el", "lsp", "sbcl", "scom", "fas", "scm", "mud", "fasl" } }, + { Lang="makefile", Extensions={"mak", "mk", "gnumakefile"} }, + { Lang="meson", Filenames={ "meson.build", "meson_options.txt" } }, + { Lang="snmp", Extensions={"mib", "smi"} }, + { Lang="ocaml", Extensions={"ml","mli", "eliom", "eliomi", "ml4", "mll", "mly"} }, + { Lang="mod2", Extensions={"mod", "def"} }, + { Lang="mod3", Extensions={"m3", "i3"} }, + { Lang="oberon", Extensions={"ooc"} }, + { Lang="php", Extensions={"php3", "php4", "php5", "php6", "php7", "phps", "phpt"} }, + { Lang="pike", Extensions={"pmod"} }, + { Lang="pl1", Extensions={"ff", "fp", "fpp", "rpp","sf", "sp", "spb", + "spp","sps", "wp", "wf", "wpp","wps","wpb","bdy","spe"} }, + { Lang="perl", Extensions={"pl","perl", "cgi", "pm", "plx", "plex"} }, + { Lang="polygen", Extensions={"grm"} }, + { Lang="pro", Extensions={"pro"} }, + { Lang="qmake", Extensions={"pro"} }, + { Lang="progress", Extensions={"p", "i", "w"} }, + { Lang="purescript", Extensions={"purs"} }, + { Lang="ruby", Extensions={"rb","ruby", "pp", "rjs", "gemfile", "rakefile", "appfile", "appraisals", "berksfile", + "brewfile", "capfile", "cgi", "cheffile", "config.ru", "deliverfile", "fastfile", "fcgi", "gemspec", + "guardfile", "irbrc", "jbuilder", "podfile", "podspec", "prawn", "rabl", "rake", "rantfile", "rbx", + "scanfile", "simplecov", "snapfile", "thor", "thorfile", "vagrantfile" } }, + { Lang="rexx", Extensions={"rex", "rx", "the"} }, + { Lang="shellscript", Filenames={".zshrc", ".bashrc"} }, + { Lang="shellscript", Extensions={"sh", "bash", "zsh", "ebuild", "eclass"} }, + { Lang="smalltalk", Extensions={"st", "gst", "sq"} }, + { Lang="sybase", Extensions={"sp"} }, + { Lang="tcl", Extensions={"wish", "itcl"} }, + { Lang="tcsh", Extensions={"csh", "tcsh", ".cshrc", ".tcshrc"} }, + { Lang="terraform", Extensions={"tf", "tfvars"} }, + { Lang="tex", Extensions={"sty", "cls"} }, + { Lang="vb", Extensions={"bas", "basic", "bi", "vbs"} }, + { Lang="verilog", Extensions={"v"} }, + { Lang="html", Extensions={"htm", "xhtml", "twig", "jinja"} }, + { Lang="xml", Extensions={"sgm", "sgml", "nrm", "ent","hdr", "hub", "dtd", "glade", + "wml","vxml", "wml", "tld", "csproj","xsl", "ecf", "jnlp", "xsd", + "resx", "rng", "rss", "opml", "graphml"} }, + { Lang="fsharp", Extensions={"fs","fsi","fsx"} }, + { Lang="informix", Extensions={"4gl"} }, + { Lang="blitzbasic", Extensions={"bb"} }, + { Lang="innosetup", Extensions={"iss"} }, + { Lang="lotus", Extensions={"ls"} }, + { Lang="ascend", Extensions={"a4c"} }, + { Lang="actionscript", Extensions={"as"} }, + { Lang="express", Extensions={"exp"} }, + { Lang="hare", Extensions={"ha"} }, + { Lang="haxe", Extensions={"hx"} }, + { Lang="pyrex", Extensions={"pyx"} }, + + { Lang="abap4", Extensions={"abp"} }, + { Lang="csharp", Extensions={"cs"} }, + { Lang="interlis", Extensions={"ili"} }, + { Lang="logtalk", Extensions={"lgt"} }, + { Lang="matlab", Extensions={"m"} }, + { Lang="nsis", Extensions={"nsi", "nsh"} }, + { Lang="bison", Extensions={"y"} }, + { Lang="squirrel", Extensions={"nut"} }, + { Lang="luban", Extensions={"lbn"} }, + { Lang="maya", Extensions={"mel"} }, + { Lang="nemerle", Extensions={"n"} }, + { Lang="nim", Extensions={"nimble", "nimrod", "nims"} }, + { Lang="paradox", Extensions={"sc"} }, + { Lang="netrexx", Extensions={"nrx"} }, + { Lang="clearbasic", Extensions={"cb"} }, + { Lang="graphviz", Extensions={"dot"} }, + { Lang="small", Extensions={"sma"} }, + { Lang="autoit", Extensions={"au3"} }, + { Lang="chill", Extensions={"chl"} }, + { Lang="autohotkey", Extensions={"ahk"} }, + { Lang="fame", Extensions={"fame"} }, + { Lang="modelica", Extensions={"mo"} }, + { Lang="maple", Extensions={"mpl"} }, + { Lang="jasmin", Extensions={"j"} }, + { Lang="snobol", Extensions={"sno"} }, + { Lang="icon", Extensions={"icn"} }, + { Lang="felix", Extensions={"flx"} }, + { Lang="lindenscript", Extensions={"lsl"} }, + { Lang="lilypond", Extensions={"ly"} }, + { Lang="nasal", Extensions={"nas"} }, + { Lang="clean", Extensions={"icl"} }, + { Lang="bibtex", Extensions={"bib"} }, + { Lang="python", Extensions={"py", "py3", "pyw", "pyi", "pyx", "pxd", "pxi", "rpy", "cpy", + "sconstruct", "gyp", "gypi", "snakefile", "wscript" } }, + { Lang="python", Filenames={"SConstruct"} }, + { Lang="rust", Extensions={"rs"} }, + + { Lang="txt", Extensions={"text"} }, + { Lang="n3", Extensions={"ttl", "nt"} }, + { Lang="biferno", Extensions={"bfr"} }, + { Lang="scilab", Extensions={"sci", "sce"} }, + { Lang="msl", Extensions={"nbs"} }, + { Lang="yaml", Extensions={"yml"} }, + { Lang="vimscript", Extensions={"vim", "vimrc", "gvimrc"} }, + { Lang="purebasic", Extensions={"pb", "pbi", "pbf"} }, + { Lang="markdown", Extensions={"md", "markdown", "mdwn", "mdx", "mkd", "mkdn", "mkdown", "ronn", "workbook"} }, + { Lang="clojure", Extensions={"clj", "cljc", "cljs", "edn"} }, + { Lang="solidity", Extensions={"sol"} }, + { Lang="powershell", Extensions={"ps1", "psm1", "psd1"} }, + { Lang="typescript", Extensions={"ts"} }, + + { Lang="exapunks", Extensions={"exapunks", "exa"} }, + { Lang="exapunks", Shebang=[[^(?i:NOTE\sEXAPUNKS)\b]] }, + + { Lang="xml", Shebang=[[^\s*<\?xml\s+version=\"1\.0\"\s+[^(>)]*?>\s*$]] }, + { Lang="shellscript", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?([bd]ash|t?csh|[akz]?sh)]] }, + { Lang="makefile",Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?make]] }, + { Lang="awk", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?[gnm]?awk]] }, + { Lang="perl", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?perl]] }, + { Lang="python", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?python]] }, + { Lang="ruby", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?ruby]] }, + { Lang="php", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?php]] }, + { Lang="javascript", Shebang=[[^#!\s*(/usr)?(/local)?/bin/(env\s+)?node]] } +} diff --git a/etc/nginx/nginx.conf b/etc/nginx/nginx.conf new file mode 100644 index 00000000..a837cf54 --- /dev/null +++ b/etc/nginx/nginx.conf @@ -0,0 +1,190 @@ + +#user http; +worker_processes 1; + +#error_log logs/error.log; +#error_log logs/error.log notice; +#error_log logs/error.log info; + +#pid logs/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include mime.types; + default_type application/octet-stream; + + #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + # '$status $body_bytes_sent "$http_referer" ' + # '"$http_user_agent" "$http_x_forwarded_for"'; + + #access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #gzip on; + + # nginx warning in journal or `sudo nginx -t`: "could not build optimal types_hash, you should increase either types_hash_max_size: 1024 or types_hash_bucket_size: 64; ignoring types_hash_bucket_size" + # default is 1024, I increased to 2048 and still throws warning, I increase 4096 and warning is gone + # not fully understood + # https://wiki.archlinux.org/title/nginx#Warning:_Could_not_build_optimal_types_hash + # https://nginx.org/en/docs/http/ngx_http_core_module.html + # https://nginx.org/en/docs/hash.html + # https://nginx.org/en/docs/http/server_names.html + types_hash_max_size 4096; + + server { + listen 80; + # needed for ipv6 + listen [::]:80; + # https://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server + listen 443 ssl; + listen [::]:443 ssl; + server_name flylightning.xyz; + + ssl_certificate /etc/nginx/flylightning.pem; + ssl_certificate_key /etc/nginx/flylightning.key; + + #charset koi8-r; + + #access_log logs/host.access.log main; + + location / { + root /srv/http/master; + index index.html; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + #error_page 500 502 503 504 /50x.html; + #location = /50x.html { + # root /usr/share/nginx/html; + #} + + # proxy the PHP scripts to Apache listening on 127.0.0.1:80 + # + #location ~ \.php$ { + # proxy_pass http://127.0.0.1; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # + #location ~ \.php$ { + # root html; + # fastcgi_pass 127.0.0.1:9000; + # fastcgi_index index.php; + # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; + # include fastcgi_params; + #} + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + # + #location ~ /\.ht { + # deny all; + #} + } + + + # another virtual host using mix of IP-, name-, and port-based configuration + # + #server { + # listen 8000; + # listen somename:8080; + # server_name somename alias another.alias; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + + # HTTPS server + # + #server { + # listen 443 ssl; + # server_name localhost; + + # ssl_certificate cert.pem; + # ssl_certificate_key cert.key; + + # ssl_session_cache shared:SSL:1m; + # ssl_session_timeout 5m; + + # ssl_ciphers HIGH:!aNULL:!MD5; + # ssl_prefer_server_ciphers on; + + # location / { + # root html; + # index index.html index.htm; + # } + #} + + server { + listen 80; + listen [::]:80; + listen 443 ssl; + listen [::]:443 ssl; + server_name mirrors.flylightning.xyz; + + ssl_certificate /etc/nginx/flylightning.pem; + ssl_certificate_key /etc/nginx/flylightning.key; + + location / { + root /srv/http/mirrors; + autoindex on; + } + } + + # https://wiki.archlinux.org/title/Cgit#Using_uwsgi + # https://wiki.gentoo.org/wiki/User:Halcon/HOWTO_cgit_uwsgi_nginx + # https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html + # https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html + # https://stackoverflow.com/questions/16182421/cgit-and-nginx-url-rewrite + server { + listen 80; + listen [::]:80; + listen 443 ssl; + listen [::]:443 ssl; + server_name git.flylightning.xyz; + root /usr/share/webapps/cgit; + + ssl_certificate /etc/nginx/flylightning.pem; + ssl_certificate_key /etc/nginx/flylightning.key; + + # about nginx location regex: + # - https://nginx.org/en/docs/http/ngx_http_core_module.html#location + # - https://stackoverflow.com/a/59846239 + # - note in nginx / only means / and no other meaning, so no need \/ + # - ~ means case-sensitive regex + # about (?:) non-capturing group: + # - https://manifold.net/doc/radian/why_do_non-capture_groups_exist_.htm + # - non-capturing group won't capture things inside () which may use later like in sed \1 + # - note: I don't think sed support ?: , because POSIX ERE and BRE doesn't seem to support ?: + # - maybe improve a little bit performance by not storing things (not tested, also I did not read the source code) + # Serve static files with nginx + location ~ ^/(?:cgit\.(?:css|png)|robots\.txt|highlight\.css|mycgit\.css)$ { + root /usr/share/webapps/cgit; + expires 30d; + } + location / { + include uwsgi_params; + uwsgi_modifier1 9; + uwsgi_pass unix:/run/uwsgi/cgit.sock; + } + } + +} + +# vim: expandtab diff --git a/etc/pacman.d/hooks/highlight-css.hook b/etc/pacman.d/hooks/highlight-css.hook new file mode 100644 index 00000000..f14acaa7 --- /dev/null +++ b/etc/pacman.d/hooks/highlight-css.hook @@ -0,0 +1,13 @@ +[Trigger] +Type = Package +Operation = Install +Operation = Upgrade +Target = highlight + +[Action] +Description = Upgrading highlight.css for cgit syntax highlighting... +When = PostTransaction +# mycgit.css import this highlight.css and cgit.css, for syntax-highlighting-edited.sh +# because cgit.css is not pacman backup file and will be overwritten when upgrade cgit +Exec = /usr/bin/sh -c '/usr/bin/mkdir -p /usr/share/webapps/cgit && /usr/bin/highlight -O xhtml --print-style -o /usr/share/webapps/cgit/highlight.css' +Depends = highlight diff --git a/etc/systemd/system/sockets.target.wants/uwsgi@cgit.socket b/etc/systemd/system/sockets.target.wants/uwsgi@cgit.socket new file mode 120000 index 00000000..ec2ebc97 --- /dev/null +++ b/etc/systemd/system/sockets.target.wants/uwsgi@cgit.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/uwsgi@.socket
\ No newline at end of file diff --git a/etc/uwsgi/cgit.ini b/etc/uwsgi/cgit.ini new file mode 100644 index 00000000..e2f750cb --- /dev/null +++ b/etc/uwsgi/cgit.ini @@ -0,0 +1,14 @@ +# https://wiki.archlinux.org/title/Cgit#Using_uwsgi +# https://wiki.gentoo.org/wiki/User:Halcon/HOWTO_cgit_uwsgi_nginx +# https://uwsgi-docs.readthedocs.io/en/latest/Configuration.html +# https://uwsgi-docs.readthedocs.io/en/latest/Options.html +[uwsgi] +master = true +plugins = cgi +socket = /run/uwsgi/%n.sock +uid = http +gid = http +procname-master = uwsgi cgit +processes = 1 +threads = 2 +cgi = /usr/lib/cgit/cgit.cgi diff --git a/srv/http/master/index.html b/srv/http/master/index.html new file mode 100644 index 00000000..88de2a03 --- /dev/null +++ b/srv/http/master/index.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<title>flylightning's homepage</title> +</head> +<body> + +<p>My email: <a href="mailto:xyz@flylightning.xyz">xyz@flylightning.xyz</a></p> +<ul> + <li>Old email: <a href="mailto:gky44px1999@gmail.com">gky44px1999@gmail.com</a></li> +</ul> + +<p>My public PGP key: <a href="https://flylightning.xyz/pub_pgp_key.asc">https://flylightning.xyz/pub_pgp_key.asc</a></p> +<ul> + <li>PGP fingerprint: FDA389A17B94BCE0E2FA3D71842BFD347BE06812</li> +</ul> + +<p>My public ssh key: <a href="https://flylightning.xyz/pub_ssh_key.txt">https://flylightning.xyz/pub_ssh_key.txt</a></p> + +<p>My public git repositories:</p> +<ul> + <li>Issues and pull requests: <a href="https://codeberg.org/flyxyz123">https://codeberg.org/flyxyz123</a></li> + <li>Mirror: <a href="https://git.flylightning.xyz">https://git.flylightning.xyz</a></li> + <li>Archive: <a href="https://github.com/flyxyz123">https://github.com/flyxyz123</a></li> +</ul> + +<p>My Linux custom repositories: <a href="https://mirrors.flylightning.xyz">https://mirrors.flylightning.xyz</a></p> + +</body> +</html> diff --git a/srv/http/master/pub_pgp_key.asc b/srv/http/master/pub_pgp_key.asc new file mode 100644 index 00000000..1fff07c6 --- /dev/null +++ b/srv/http/master/pub_pgp_key.asc @@ -0,0 +1,100 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +8e+CFvBSqaFUrQ== +=EAd+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/srv/http/master/pub_ssh_key.txt b/srv/http/master/pub_ssh_key.txt new file mode 100644 index 00000000..0560ce51 --- /dev/null +++ b/srv/http/master/pub_ssh_key.txt @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCv5BUlURCkc3pycnmSvakTFl6W1fnCrIkzxJKQQcz18/eL9pa/M0KWjq3KoxFrsHxtsCjY3fYoUJ6XqYKEWUJRsB2ZFS0qhCPTaqhqFfKJzkKUpHyDwF5IN+/gJ95IN2slq9MRb9I4mCqUwatNHDKuctdCN3K5GCkbYbuhVKsR+2bK51aYYWtw2Pxvmhfhza0tYHdgv2nFuhEjPsRwB+dZ4XJ6fbQnXQKc8ZQVXHr+Yj4+VUIvgqbccyJvo6ICdO5YSJAT5Ue7Qm+qUKVraI6ALd2M5yLD2PyWR5x6VrtDs/3i1kH1EQw9h+2WNyW4ZUB5wRTUlKZNATWhB39K0a6jvr8V8getzcVpagIJ/obhTxg8rgoaYj1JOpDp4UnNxHaUCjXtSZdcruX+JnQyBjo4awyxUJBaym8J5+F9JWtMgTNQ+94n+eCAnp3sQigbUnft9au2wjytUL7lWJwzboNNhv2n2QUSWSaz5uoaXcDr/MOXa83MBYgr0xuDIHCPD5E= gky44px1999@gmail.com diff --git a/usr/lib/cgit/filters/about-formatting-edited.sh b/usr/lib/cgit/filters/about-formatting-edited.sh new file mode 100755 index 00000000..e919e54d --- /dev/null +++ b/usr/lib/cgit/filters/about-formatting-edited.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# This may be used with the about-filter or repo.about-filter setting in cgitrc. +# It passes formatting of about pages to differing programs, depending on the usage. + +# Markdown support requires python and markdown-python. +# RestructuredText support requires python and docutils. +# Man page support requires groff. + +# The following environment variables can be used to retrieve the configuration +# of the repository for which this script is called: +# CGIT_REPO_URL ( = repo.url setting ) +# CGIT_REPO_NAME ( = repo.name setting ) +# CGIT_REPO_PATH ( = repo.path setting ) +# CGIT_REPO_OWNER ( = repo.owner setting ) +# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting ) +# CGIT_REPO_SECTION ( = section setting ) +# CGIT_REPO_CLONE_URL ( = repo.clone-url setting ) + +# note `pwd` when cgit run this script is /, can be tested by `cat '<p>$(pwd)</p>'` +# so need to get those scripts location via $0, $0 is /usr/lib/cgit/filters/about-formatting-edited.sh +dir="$(dirname "$0")/html-converters/" +case "$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')" in + *.markdown|*.mdown|*.md|*.mkd) exec cmark;; +# *.rst) exec "$dir/rst2html";; + *.[1-9]) exec "$dir/man2html";; + *.htm|*.html) exec cat;; + *.txt|*) exec "$dir/txt2html";; +esac diff --git a/usr/lib/cgit/filters/syntax-highlighting-edited.sh b/usr/lib/cgit/filters/syntax-highlighting-edited.sh new file mode 100755 index 00000000..111b1928 --- /dev/null +++ b/usr/lib/cgit/filters/syntax-highlighting-edited.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# This script can be used to implement syntax highlighting in the cgit +# tree-view by referring to this file with the source-filter or repo.source- +# filter options in cgitrc. +# +# Note: the highlight command (https://gitlab.com/saalen/highlight) uses css for syntax +# highlighting, I choose to output a file /usr/share/webapps/cgit/highlight.css +# by `highlight -O xhtml --print-style` and import it in mycgit.css for cgit to use. +# +# The following environment variables can be used to retrieve the configuration +# of the repository for which this script is called: +# CGIT_REPO_URL ( = repo.url setting ) +# CGIT_REPO_NAME ( = repo.name setting ) +# CGIT_REPO_PATH ( = repo.path setting ) +# CGIT_REPO_OWNER ( = repo.owner setting ) +# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting ) +# CGIT_REPO_SECTION ( = section setting ) +# CGIT_REPO_CLONE_URL ( = repo.clone-url setting ) + +syntax= +case "$1" in + nginx.conf) syntax=nginx;; + pacman.conf) syntax=ini;; + cgitrc) syntax=ini;; + .gitolite.rc) syntax=perl;; +esac + +# `--force` needed for highlight; one example is `< textfile highlight -O ansi --force`, without `--force` will error 1 and no output +if [ "$syntax" ]; then + exec highlight --force -f -I -O xhtml -S "$syntax" 2>/dev/null +else + exec highlight --force -f -I -O xhtml --syntax-by-name "$1" 2>/dev/null +fi diff --git a/usr/share/webapps/cgit/highlight.css b/usr/share/webapps/cgit/highlight.css new file mode 100644 index 00000000..c8a733d1 --- /dev/null +++ b/usr/share/webapps/cgit/highlight.css @@ -0,0 +1,24 @@ +/* Style definition file generated by highlight 4.15, http://andre-simon.de/ */ +/* highlight theme: Kwrite Editor */ +body.hl { background-color:#e0eaee; } +pre.hl { color:#000000; background-color:#e0eaee; font-size:10pt; font-family:'Courier New',monospace; white-space: pre-wrap; } +.hl.num { color:#b07e00; } +.hl.esc { color:#ff00ff; } +.hl.sng { color:#bf0303; } +.hl.pps { color:#818100; } +.hl.slc { color:#838183; font-style:italic; } +.hl.com { color:#838183; font-style:italic; } +.hl.ppc { color:#008200; } +.hl.opt { color:#000000; } +.hl.ipl { color:#0057ae; } +.hl.lin { color:#555555; user-select: none;-webkit-user-select: none; } +.hl.hvr { cursor:help; } +.hl.erm { color:#ff0000; font-weight:bold; border:solid 1px red; margin-left: 3em; } +.hl.err { color:#ff0000; font-weight:bold; } +.hl.kwa { color:#000000; font-weight:bold; } +.hl.kwb { color:#0057ae; } +.hl.kwc { color:#000000; } +.hl.kwd { color:#010181; } +.hl.kwe { color:#0d5bc3; } +.hl.kwf { color:#750dc3; } + diff --git a/usr/share/webapps/cgit/mycgit.css b/usr/share/webapps/cgit/mycgit.css new file mode 100644 index 00000000..bc1ac964 --- /dev/null +++ b/usr/share/webapps/cgit/mycgit.css @@ -0,0 +1,6 @@ +@import "cgit.css"; +@import "highlight.css"; + +div#cgit pre { tab-size: 4; } + +div#cgit table.diff { tab-size: 4; } diff --git a/var/lib/gitolite/.gitolite.rc b/var/lib/gitolite/.gitolite.rc new file mode 100644 index 00000000..6f92032d --- /dev/null +++ b/var/lib/gitolite/.gitolite.rc @@ -0,0 +1,202 @@ +# configuration variables for gitolite + +# This file is in perl syntax. But you do NOT need to know perl to edit it -- +# just mind the commas, use single quotes unless you know what you're doing, +# and make sure the brackets and braces stay matched up! + +# (Tip: perl allows a comma after the last item in a list also!) + +# HELP for commands can be had by running the command with "-h". + +# HELP for all the other FEATURES can be found in the documentation (look for +# "list of non-core programs shipped with gitolite" in the master index) or +# directly in the corresponding source file. + +%RC = ( + + # ------------------------------------------------------------------ + + # default umask gives you perms of '0700'; see the rc file docs for + # how/why you might change this + UMASK => 0027, + + # look for "git-config" in the documentation + GIT_CONFIG_KEYS => '', + + # comment out if you don't need all the extra detail in the logfile + LOG_EXTRA => 1, + # logging options + # 1. leave this section as is for 'normal' gitolite logging (default) + # 2. uncomment this line to log ONLY to syslog: + # LOG_DEST => 'syslog', + # 3. uncomment this line to log to syslog and the normal gitolite log: + # LOG_DEST => 'syslog,normal', + # 4. prefixing "repo-log," to any of the above will **also** log just the + # update records to "gl-log" in the bare repo directory: + # LOG_DEST => 'repo-log,normal', + # LOG_DEST => 'repo-log,syslog', + # LOG_DEST => 'repo-log,syslog,normal', + # syslog 'facility': defaults to 'local0', uncomment if needed. For example: + # LOG_FACILITY => 'local4', + + # roles. add more roles (like MANAGER, TESTER, ...) here. + # WARNING: if you make changes to this hash, you MUST run 'gitolite + # compile' afterward, and possibly also 'gitolite trigger POST_COMPILE' + ROLES => { + READERS => 1, + WRITERS => 1, + }, + + # enable caching (currently only Redis). PLEASE RTFM BEFORE USING!!! + # CACHE => 'Redis', + + # ------------------------------------------------------------------ + + # rc variables used by various features + + # the 'info' command prints this as additional info, if it is set + # SITE_INFO => 'Please see http://blahblah/gitolite for more help', + + # the CpuTime feature uses these + # display user, system, and elapsed times to user after each git operation + # DISPLAY_CPU_TIME => 1, + # display a warning if total CPU times (u, s, cu, cs) crosses this limit + # CPU_TIME_WARN_LIMIT => 0.1, + + # the Mirroring feature needs this + # HOSTNAME => "foo", + + # TTL for redis cache; PLEASE SEE DOCUMENTATION BEFORE UNCOMMENTING! + # CACHE_TTL => 600, + + # ------------------------------------------------------------------ + + # suggested locations for site-local gitolite code (see cust.html) + + # this one is managed directly on the server + # LOCAL_CODE => "$ENV{HOME}/local", + + # or you can use this, which lets you put everything in a subdirectory + # called "local" in your gitolite-admin repo. For a SECURITY WARNING + # on this, see http://gitolite.com/gitolite/non-core.html#using-the-gitolite-admin-repo-to-manage-non-core-code + # LOCAL_CODE => "$rc{GL_ADMIN_BASE}/local", + + # ------------------------------------------------------------------ + + # List of commands and features to enable + + ENABLE => [ + + # COMMANDS + + # These are the commands enabled by default + 'help', + 'desc', + 'info', + 'perms', + 'writable', + + # Uncomment or add new commands here. + # 'create', + # 'fork', + # 'mirror', + # 'readme', + # 'sskm', + # 'D', + + # These FEATURES are enabled by default. + + # essential (unless you're using smart-http mode) + 'ssh-authkeys', + + # creates git-config entries from gitolite.conf file entries like 'config foo.bar = baz' + 'git-config', + + # creates git-daemon-export-ok files; if you don't use git-daemon, comment this out + 'daemon', + + # creates projects.list file; if you don't use gitweb, comment this out + 'gitweb', + + # These FEATURES are disabled by default; uncomment to enable. If you + # need to add new ones, ask on the mailing list :-) + + # user-visible behaviour + + # prevent wild repos auto-create on fetch/clone + # 'no-create-on-read', + # no auto-create at all (don't forget to enable the 'create' command!) + # 'no-auto-create', + + # access a repo by another (possibly legacy) name + # 'Alias', + + # give some users direct shell access. See documentation in + # sts.html for details on the following two choices. + # "Shell $ENV{HOME}/.gitolite.shell-users", + # 'Shell alice bob', + + # set default roles from lines like 'option default.roles-1 = ...', etc. + # 'set-default-roles', + + # show more detailed messages on deny + # 'expand-deny-messages', + + # show a message of the day + # 'Motd', + + # system admin stuff + + # enable mirroring (don't forget to set the HOSTNAME too!) + # 'Mirroring', + + # allow people to submit pub files with more than one key in them + # 'ssh-authkeys-split', + + # selective read control hack + # 'partial-copy', + + # manage local, gitolite-controlled, copies of read-only upstream repos + # 'upstream', + + # updates 'description' file instead of 'gitweb.description' config item + # 'cgit', + + # allow repo-specific hooks to be added + # 'repo-specific-hooks', + + # performance, logging, monitoring... + + # be nice + # 'renice 10', + + # log CPU times (user, system, cumulative user, cumulative system) + # 'CpuTime', + + # syntactic_sugar for gitolite.conf and included files + + # allow backslash-escaped continuation lines in gitolite.conf + # 'continuation-lines', + + # create implicit user groups from directory names in keydir/ + # 'keysubdirs-as-groups', + + # allow simple line-oriented macros + # 'macros', + + # Kindergarten mode + + # disallow various things that sensible people shouldn't be doing anyway + # 'Kindergarten', + ], + +); + +# ------------------------------------------------------------------------------ +# per perl rules, this should be the last line in such a file: +1; + +# Local variables: +# mode: perl +# End: +# vim: set syn=perl: |