mirror of
https://github.com/samjage/lab.git
synced 2026-06-06 02:50:43 +00:00
initial commit - docker stacks
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
PIHOLE_PASSWORD=Odin.1349.1776
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
invokesmoke.dev {
|
||||||
|
header /.well-known/matrix/* Content-Type application/json
|
||||||
|
header /.well-known/matrix/* Access-Control-Allow-Origin *
|
||||||
|
respond /.well-known/matrix/server `{"m.server":"matrix.invokesmoke.dev:443"}`
|
||||||
|
respond /.well-known/matrix/client `{"m.homeserver":{"base_url":"https://matrix.invokesmoke.dev"}}`
|
||||||
|
respond 404
|
||||||
|
}
|
||||||
|
|
||||||
|
matrix.invokesmoke.dev {
|
||||||
|
respond /_version `{"sha":"{env.GIT_SHA}"}`
|
||||||
|
reverse_proxy tuwunel:6167
|
||||||
|
}
|
||||||
|
|
||||||
|
matrix.invokesmoke.dev:8448 {
|
||||||
|
reverse_proxy tuwunel:6167
|
||||||
|
}
|
||||||
|
|
||||||
|
mealie.invokesmoke.dev {
|
||||||
|
reverse_proxy mealie:9000
|
||||||
|
}
|
||||||
|
|
||||||
|
portainer.invokesmoke.dev {
|
||||||
|
reverse_proxy portainer:9000
|
||||||
|
}
|
||||||
|
|
||||||
|
code.invokesmoke.dev {
|
||||||
|
reverse_proxy code-server:8443
|
||||||
|
}
|
||||||
|
|
||||||
|
pihole.invokesmoke.dev {
|
||||||
|
reverse_proxy pihole:80
|
||||||
|
}
|
||||||
|
|
||||||
|
gitea.invokesmoke.dev {
|
||||||
|
reverse_proxy gitea:3000
|
||||||
|
}
|
||||||
|
|
||||||
|
wetty.invokesmoke.dev {
|
||||||
|
reverse_proxy wetty:3000 {
|
||||||
|
header_up Upgrade {http.request.header.Upgrade}
|
||||||
|
header_up Connection {http.request.header.Connection}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vpn.invokesmoke.dev {
|
||||||
|
reverse_proxy wireguard:51821
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
container_name: caddy
|
||||||
|
image: caddy:2-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "8448:8448"
|
||||||
|
volumes:
|
||||||
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
||||||
|
- caddy-data:/data
|
||||||
|
- caddy-config:/config
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
pihole:
|
||||||
|
container_name: pihole
|
||||||
|
image: pihole/pihole:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "53:53/tcp"
|
||||||
|
- "53:53/udp"
|
||||||
|
- "8053:80/tcp"
|
||||||
|
environment:
|
||||||
|
- WEBPASSWORD=${PIHOLE_PASSWORD}
|
||||||
|
- ServerIP=192.168.1.40
|
||||||
|
volumes:
|
||||||
|
- etc-pihole:/etc/pihole
|
||||||
|
- etc-dnsmasq.d:/etc/dnsmasq.d
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
caddy-data:
|
||||||
|
external: true
|
||||||
|
name: backbone_caddy-data
|
||||||
|
caddy-config:
|
||||||
|
external: true
|
||||||
|
name: backbone_caddy-config
|
||||||
|
etc-pihole:
|
||||||
|
etc-dnsmasq.d:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backbone:
|
||||||
|
name: backbone
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
GITEA_CUSTOM=/data/gitea
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ref: refs/heads/main
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[core]
|
||||||
|
repositoryformatversion = 0
|
||||||
|
filemode = true
|
||||||
|
bare = true
|
||||||
|
[remote "remote_mirror_yDrfMaaYu1"]
|
||||||
|
url = https://github.com/samjage/Uplink-Manager
|
||||||
|
mirror = true
|
||||||
|
push = +refs/heads/*:refs/heads/*
|
||||||
|
push = +refs/tags/*:refs/tags/*
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Unnamed repository; edit this file 'description' to name the repository.
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to check the commit log message taken by
|
||||||
|
# applypatch from an e-mail message.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an
|
||||||
|
# appropriate message if it wants to stop the commit. The hook is
|
||||||
|
# allowed to edit the commit message file.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "applypatch-msg".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
|
||||||
|
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
|
||||||
|
:
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to check the commit log message.
|
||||||
|
# Called by "git commit" with one argument, the name of the file
|
||||||
|
# that has the commit message. The hook should exit with non-zero
|
||||||
|
# status after issuing an appropriate message if it wants to stop the
|
||||||
|
# commit. The hook is allowed to edit the commit message file.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "commit-msg".
|
||||||
|
|
||||||
|
# Uncomment the below to add a Signed-off-by line to the message.
|
||||||
|
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
|
||||||
|
# hook is more suited to it.
|
||||||
|
#
|
||||||
|
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||||
|
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
||||||
|
|
||||||
|
# This example catches duplicate Signed-off-by lines.
|
||||||
|
|
||||||
|
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
||||||
|
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
||||||
|
echo >&2 Duplicate Signed-off-by lines.
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
data=$(cat)
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
echo "${data}" | "${hook}"
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini post-receive
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to prepare a packed repository for use over
|
||||||
|
# dumb transports.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "post-update".
|
||||||
|
|
||||||
|
exec git update-server-info
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed
|
||||||
|
# by applypatch from an e-mail message.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an
|
||||||
|
# appropriate message if it wants to stop the commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-applypatch".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
precommit="$(git rev-parse --git-path hooks/pre-commit)"
|
||||||
|
test -x "$precommit" && exec "$precommit" ${1+"$@"}
|
||||||
|
:
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed.
|
||||||
|
# Called by "git commit" with no arguments. The hook should
|
||||||
|
# exit with non-zero status after issuing an appropriate message if
|
||||||
|
# it wants to stop the commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-commit".
|
||||||
|
|
||||||
|
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
against=HEAD
|
||||||
|
else
|
||||||
|
# Initial commit: diff against an empty tree object
|
||||||
|
against=$(git hash-object -t tree /dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If you want to allow non-ASCII filenames set this variable to true.
|
||||||
|
allownonascii=$(git config --type=bool hooks.allownonascii)
|
||||||
|
|
||||||
|
# Redirect output to stderr.
|
||||||
|
exec 1>&2
|
||||||
|
|
||||||
|
# Cross platform projects tend to avoid non-ASCII filenames; prevent
|
||||||
|
# them from being added to the repository. We exploit the fact that the
|
||||||
|
# printable range starts at the space character and ends with tilde.
|
||||||
|
if [ "$allownonascii" != "true" ] &&
|
||||||
|
# Note that the use of brackets around a tr range is ok here, (it's
|
||||||
|
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
||||||
|
# the square bracket bytes happen to fall in the designated range.
|
||||||
|
test $(git diff-index --cached --name-only --diff-filter=A -z $against |
|
||||||
|
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
|
||||||
|
then
|
||||||
|
cat <<\EOF
|
||||||
|
Error: Attempt to add a non-ASCII file name.
|
||||||
|
|
||||||
|
This can cause problems if you want to work with people on other platforms.
|
||||||
|
|
||||||
|
To be portable it is advisable to rename the file.
|
||||||
|
|
||||||
|
If you know what you are doing you can disable this check using:
|
||||||
|
|
||||||
|
git config hooks.allownonascii true
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there are whitespace errors, print the offending file names and fail.
|
||||||
|
exec git diff-index --check --cached $against --
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed.
|
||||||
|
# Called by "git merge" with no arguments. The hook should
|
||||||
|
# exit with non-zero status after issuing an appropriate message to
|
||||||
|
# stderr if it wants to stop the merge commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-merge-commit".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
test -x "$GIT_DIR/hooks/pre-commit" &&
|
||||||
|
exec "$GIT_DIR/hooks/pre-commit"
|
||||||
|
:
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to verify what is about to be pushed. Called by "git
|
||||||
|
# push" after it has checked the remote status, but before anything has been
|
||||||
|
# pushed. If this script exits with a non-zero status nothing will be pushed.
|
||||||
|
#
|
||||||
|
# This hook is called with the following parameters:
|
||||||
|
#
|
||||||
|
# $1 -- Name of the remote to which the push is being done
|
||||||
|
# $2 -- URL to which the push is being done
|
||||||
|
#
|
||||||
|
# If pushing without using a named remote those arguments will be equal.
|
||||||
|
#
|
||||||
|
# Information about the commits which are being pushed is supplied as lines to
|
||||||
|
# the standard input in the form:
|
||||||
|
#
|
||||||
|
# <local ref> <local oid> <remote ref> <remote oid>
|
||||||
|
#
|
||||||
|
# This sample shows how to prevent push of commits where the log message starts
|
||||||
|
# with "WIP" (work in progress).
|
||||||
|
|
||||||
|
remote="$1"
|
||||||
|
url="$2"
|
||||||
|
|
||||||
|
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||||
|
|
||||||
|
while read local_ref local_oid remote_ref remote_oid
|
||||||
|
do
|
||||||
|
if test "$local_oid" = "$zero"
|
||||||
|
then
|
||||||
|
# Handle delete
|
||||||
|
:
|
||||||
|
else
|
||||||
|
if test "$remote_oid" = "$zero"
|
||||||
|
then
|
||||||
|
# New branch, examine all commits
|
||||||
|
range="$local_oid"
|
||||||
|
else
|
||||||
|
# Update to existing branch, examine new commits
|
||||||
|
range="$remote_oid..$local_oid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for WIP commit
|
||||||
|
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
|
||||||
|
if test -n "$commit"
|
||||||
|
then
|
||||||
|
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
+169
@@ -0,0 +1,169 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006, 2008 Junio C Hamano
|
||||||
|
#
|
||||||
|
# The "pre-rebase" hook is run just before "git rebase" starts doing
|
||||||
|
# its job, and can prevent the command from running by exiting with
|
||||||
|
# non-zero status.
|
||||||
|
#
|
||||||
|
# The hook is called with the following parameters:
|
||||||
|
#
|
||||||
|
# $1 -- the upstream the series was forked from.
|
||||||
|
# $2 -- the branch being rebased (or empty when rebasing the current branch).
|
||||||
|
#
|
||||||
|
# This sample shows how to prevent topic branches that are already
|
||||||
|
# merged to 'next' branch from getting rebased, because allowing it
|
||||||
|
# would result in rebasing already published history.
|
||||||
|
|
||||||
|
publish=next
|
||||||
|
basebranch="$1"
|
||||||
|
if test "$#" = 2
|
||||||
|
then
|
||||||
|
topic="refs/heads/$2"
|
||||||
|
else
|
||||||
|
topic=`git symbolic-ref HEAD` ||
|
||||||
|
exit 0 ;# we do not interrupt rebasing detached HEAD
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$topic" in
|
||||||
|
refs/heads/??/*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0 ;# we do not interrupt others.
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Now we are dealing with a topic branch being rebased
|
||||||
|
# on top of master. Is it OK to rebase it?
|
||||||
|
|
||||||
|
# Does the topic really exist?
|
||||||
|
git show-ref -q "$topic" || {
|
||||||
|
echo >&2 "No such branch $topic"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Is topic fully merged to master?
|
||||||
|
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
|
||||||
|
if test -z "$not_in_master"
|
||||||
|
then
|
||||||
|
echo >&2 "$topic is fully merged to master; better remove it."
|
||||||
|
exit 1 ;# we could allow it, but there is no point.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Is topic ever merged to next? If so you should not be rebasing it.
|
||||||
|
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
|
||||||
|
only_next_2=`git rev-list ^master ${publish} | sort`
|
||||||
|
if test "$only_next_1" = "$only_next_2"
|
||||||
|
then
|
||||||
|
not_in_topic=`git rev-list "^$topic" master`
|
||||||
|
if test -z "$not_in_topic"
|
||||||
|
then
|
||||||
|
echo >&2 "$topic is already up to date with master"
|
||||||
|
exit 1 ;# we could allow it, but there is no point.
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
|
||||||
|
/usr/bin/perl -e '
|
||||||
|
my $topic = $ARGV[0];
|
||||||
|
my $msg = "* $topic has commits already merged to public branch:\n";
|
||||||
|
my (%not_in_next) = map {
|
||||||
|
/^([0-9a-f]+) /;
|
||||||
|
($1 => 1);
|
||||||
|
} split(/\n/, $ARGV[1]);
|
||||||
|
for my $elem (map {
|
||||||
|
/^([0-9a-f]+) (.*)$/;
|
||||||
|
[$1 => $2];
|
||||||
|
} split(/\n/, $ARGV[2])) {
|
||||||
|
if (!exists $not_in_next{$elem->[0]}) {
|
||||||
|
if ($msg) {
|
||||||
|
print STDERR $msg;
|
||||||
|
undef $msg;
|
||||||
|
}
|
||||||
|
print STDERR " $elem->[1]\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' "$topic" "$not_in_next" "$not_in_master"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
<<\DOC_END
|
||||||
|
|
||||||
|
This sample hook safeguards topic branches that have been
|
||||||
|
published from being rewound.
|
||||||
|
|
||||||
|
The workflow assumed here is:
|
||||||
|
|
||||||
|
* Once a topic branch forks from "master", "master" is never
|
||||||
|
merged into it again (either directly or indirectly).
|
||||||
|
|
||||||
|
* Once a topic branch is fully cooked and merged into "master",
|
||||||
|
it is deleted. If you need to build on top of it to correct
|
||||||
|
earlier mistakes, a new topic branch is created by forking at
|
||||||
|
the tip of the "master". This is not strictly necessary, but
|
||||||
|
it makes it easier to keep your history simple.
|
||||||
|
|
||||||
|
* Whenever you need to test or publish your changes to topic
|
||||||
|
branches, merge them into "next" branch.
|
||||||
|
|
||||||
|
The script, being an example, hardcodes the publish branch name
|
||||||
|
to be "next", but it is trivial to make it configurable via
|
||||||
|
$GIT_DIR/config mechanism.
|
||||||
|
|
||||||
|
With this workflow, you would want to know:
|
||||||
|
|
||||||
|
(1) ... if a topic branch has ever been merged to "next". Young
|
||||||
|
topic branches can have stupid mistakes you would rather
|
||||||
|
clean up before publishing, and things that have not been
|
||||||
|
merged into other branches can be easily rebased without
|
||||||
|
affecting other people. But once it is published, you would
|
||||||
|
not want to rewind it.
|
||||||
|
|
||||||
|
(2) ... if a topic branch has been fully merged to "master".
|
||||||
|
Then you can delete it. More importantly, you should not
|
||||||
|
build on top of it -- other people may already want to
|
||||||
|
change things related to the topic as patches against your
|
||||||
|
"master", so if you need further changes, it is better to
|
||||||
|
fork the topic (perhaps with the same name) afresh from the
|
||||||
|
tip of "master".
|
||||||
|
|
||||||
|
Let's look at this example:
|
||||||
|
|
||||||
|
o---o---o---o---o---o---o---o---o---o "next"
|
||||||
|
/ / / /
|
||||||
|
/ a---a---b A / /
|
||||||
|
/ / / /
|
||||||
|
/ / c---c---c---c B /
|
||||||
|
/ / / \ /
|
||||||
|
/ / / b---b C \ /
|
||||||
|
/ / / / \ /
|
||||||
|
---o---o---o---o---o---o---o---o---o---o---o "master"
|
||||||
|
|
||||||
|
|
||||||
|
A, B and C are topic branches.
|
||||||
|
|
||||||
|
* A has one fix since it was merged up to "next".
|
||||||
|
|
||||||
|
* B has finished. It has been fully merged up to "master" and "next",
|
||||||
|
and is ready to be deleted.
|
||||||
|
|
||||||
|
* C has not merged to "next" at all.
|
||||||
|
|
||||||
|
We would want to allow C to be rebased, refuse A, and encourage
|
||||||
|
B to be deleted.
|
||||||
|
|
||||||
|
To compute (1):
|
||||||
|
|
||||||
|
git rev-list ^master ^topic next
|
||||||
|
git rev-list ^master next
|
||||||
|
|
||||||
|
if these match, topic has not merged in next at all.
|
||||||
|
|
||||||
|
To compute (2):
|
||||||
|
|
||||||
|
git rev-list master..topic
|
||||||
|
|
||||||
|
if this is empty, it is fully merged to "master".
|
||||||
|
|
||||||
|
DOC_END
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
data=$(cat)
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
echo "${data}" | "${hook}"
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini pre-receive
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to make use of push options.
|
||||||
|
# The example simply echoes all push options that start with 'echoback='
|
||||||
|
# and rejects all pushes when the "reject" push option is used.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-receive".
|
||||||
|
|
||||||
|
if test -n "$GIT_PUSH_OPTION_COUNT"
|
||||||
|
then
|
||||||
|
i=0
|
||||||
|
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
|
||||||
|
do
|
||||||
|
eval "value=\$GIT_PUSH_OPTION_$i"
|
||||||
|
case "$value" in
|
||||||
|
echoback=*)
|
||||||
|
echo "echo from the pre-receive-hook: ${value#*=}" >&2
|
||||||
|
;;
|
||||||
|
reject)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
fi
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to prepare the commit log message.
|
||||||
|
# Called by "git commit" with the name of the file that has the
|
||||||
|
# commit message, followed by the description of the commit
|
||||||
|
# message's source. The hook's purpose is to edit the commit
|
||||||
|
# message file. If the hook fails with a non-zero status,
|
||||||
|
# the commit is aborted.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "prepare-commit-msg".
|
||||||
|
|
||||||
|
# This hook includes three examples. The first one removes the
|
||||||
|
# "# Please enter the commit message..." help message.
|
||||||
|
#
|
||||||
|
# The second includes the output of "git diff --name-status -r"
|
||||||
|
# into the message, just before the "git status" output. It is
|
||||||
|
# commented because it doesn't cope with --amend or with squashed
|
||||||
|
# commits.
|
||||||
|
#
|
||||||
|
# The third example adds a Signed-off-by line to the message, that can
|
||||||
|
# still be edited. This is rarely a good idea.
|
||||||
|
|
||||||
|
COMMIT_MSG_FILE=$1
|
||||||
|
COMMIT_SOURCE=$2
|
||||||
|
SHA1=$3
|
||||||
|
|
||||||
|
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
|
||||||
|
|
||||||
|
# case "$COMMIT_SOURCE,$SHA1" in
|
||||||
|
# ,|template,)
|
||||||
|
# /usr/bin/perl -i.bak -pe '
|
||||||
|
# print "\n" . `git diff --cached --name-status -r`
|
||||||
|
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
|
||||||
|
# *) ;;
|
||||||
|
# esac
|
||||||
|
|
||||||
|
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||||
|
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
|
||||||
|
# if test -z "$COMMIT_SOURCE"
|
||||||
|
# then
|
||||||
|
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
|
||||||
|
# fi
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini proc-receive
|
||||||
+78
@@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to update a checked-out tree on a git push.
|
||||||
|
#
|
||||||
|
# This hook is invoked by git-receive-pack(1) when it reacts to git
|
||||||
|
# push and updates reference(s) in its repository, and when the push
|
||||||
|
# tries to update the branch that is currently checked out and the
|
||||||
|
# receive.denyCurrentBranch configuration variable is set to
|
||||||
|
# updateInstead.
|
||||||
|
#
|
||||||
|
# By default, such a push is refused if the working tree and the index
|
||||||
|
# of the remote repository has any difference from the currently
|
||||||
|
# checked out commit; when both the working tree and the index match
|
||||||
|
# the current commit, they are updated to match the newly pushed tip
|
||||||
|
# of the branch. This hook is to be used to override the default
|
||||||
|
# behaviour; however the code below reimplements the default behaviour
|
||||||
|
# as a starting point for convenient modification.
|
||||||
|
#
|
||||||
|
# The hook receives the commit with which the tip of the current
|
||||||
|
# branch is going to be updated:
|
||||||
|
commit=$1
|
||||||
|
|
||||||
|
# It can exit with a non-zero status to refuse the push (when it does
|
||||||
|
# so, it must not modify the index or the working tree).
|
||||||
|
die () {
|
||||||
|
echo >&2 "$*"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Or it can make any necessary changes to the working tree and to the
|
||||||
|
# index to bring them to the desired state when the tip of the current
|
||||||
|
# branch is updated to the new commit, and exit with a zero status.
|
||||||
|
#
|
||||||
|
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
|
||||||
|
# in order to emulate git fetch that is run in the reverse direction
|
||||||
|
# with git push, as the two-tree form of git read-tree -u -m is
|
||||||
|
# essentially the same as git switch or git checkout that switches
|
||||||
|
# branches while keeping the local changes in the working tree that do
|
||||||
|
# not interfere with the difference between the branches.
|
||||||
|
|
||||||
|
# The below is a more-or-less exact translation to shell of the C code
|
||||||
|
# for the default behaviour for git's push-to-checkout hook defined in
|
||||||
|
# the push_to_deploy() function in builtin/receive-pack.c.
|
||||||
|
#
|
||||||
|
# Note that the hook will be executed from the repository directory,
|
||||||
|
# not from the working tree, so if you want to perform operations on
|
||||||
|
# the working tree, you will have to adapt your code accordingly, e.g.
|
||||||
|
# by adding "cd .." or using relative paths.
|
||||||
|
|
||||||
|
if ! git update-index -q --ignore-submodules --refresh
|
||||||
|
then
|
||||||
|
die "Up-to-date check failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-files --quiet --ignore-submodules --
|
||||||
|
then
|
||||||
|
die "Working directory has unstaged changes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is a rough translation of:
|
||||||
|
#
|
||||||
|
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
|
||||||
|
if git cat-file -e HEAD 2>/dev/null
|
||||||
|
then
|
||||||
|
head=HEAD
|
||||||
|
else
|
||||||
|
head=$(git hash-object -t tree --stdin </dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-index --quiet --cached --ignore-submodules $head --
|
||||||
|
then
|
||||||
|
die "Working directory has staged changes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git read-tree -u -m "$commit"
|
||||||
|
then
|
||||||
|
die "Could not update working tree to new HEAD"
|
||||||
|
fi
|
||||||
+77
@@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to validate a patch (and/or patch series) before
|
||||||
|
# sending it via email.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an appropriate
|
||||||
|
# message if it wants to prevent the email(s) from being sent.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "sendemail-validate".
|
||||||
|
#
|
||||||
|
# By default, it will only check that the patch(es) can be applied on top of
|
||||||
|
# the default upstream branch without conflicts in a secondary worktree. After
|
||||||
|
# validation (successful or not) of the last patch of a series, the worktree
|
||||||
|
# will be deleted.
|
||||||
|
#
|
||||||
|
# The following config variables can be set to change the default remote and
|
||||||
|
# remote ref that are used to apply the patches against:
|
||||||
|
#
|
||||||
|
# sendemail.validateRemote (default: origin)
|
||||||
|
# sendemail.validateRemoteRef (default: HEAD)
|
||||||
|
#
|
||||||
|
# Replace the TODO placeholders with appropriate checks according to your
|
||||||
|
# needs.
|
||||||
|
|
||||||
|
validate_cover_letter () {
|
||||||
|
file="$1"
|
||||||
|
# TODO: Replace with appropriate checks (e.g. spell checking).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_patch () {
|
||||||
|
file="$1"
|
||||||
|
# Ensure that the patch applies without conflicts.
|
||||||
|
git am -3 "$file" || return
|
||||||
|
# TODO: Replace with appropriate checks for this patch
|
||||||
|
# (e.g. checkpatch.pl).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_series () {
|
||||||
|
# TODO: Replace with appropriate checks for the whole series
|
||||||
|
# (e.g. quick build, coding style checks, etc.).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
# main -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
|
||||||
|
then
|
||||||
|
remote=$(git config --default origin --get sendemail.validateRemote) &&
|
||||||
|
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
|
||||||
|
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
|
||||||
|
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
|
||||||
|
git config --replace-all sendemail.validateWorktree "$worktree"
|
||||||
|
else
|
||||||
|
worktree=$(git config --get sendemail.validateWorktree)
|
||||||
|
fi || {
|
||||||
|
echo "sendemail-validate: error: failed to prepare worktree" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
unset GIT_DIR GIT_WORK_TREE
|
||||||
|
cd "$worktree" &&
|
||||||
|
|
||||||
|
if grep -q "^diff --git " "$1"
|
||||||
|
then
|
||||||
|
validate_patch "$1"
|
||||||
|
else
|
||||||
|
validate_cover_letter "$1"
|
||||||
|
fi &&
|
||||||
|
|
||||||
|
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
|
||||||
|
then
|
||||||
|
git config --unset-all sendemail.validateWorktree &&
|
||||||
|
trap 'git worktree remove -ff "$worktree"' EXIT &&
|
||||||
|
validate_series
|
||||||
|
fi
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0/..)}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
"${hook}" $1 $2 $3
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini update $1 $2 $3
|
||||||
+128
@@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to block unannotated tags from entering.
|
||||||
|
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "update".
|
||||||
|
#
|
||||||
|
# Config
|
||||||
|
# ------
|
||||||
|
# hooks.allowunannotated
|
||||||
|
# This boolean sets whether unannotated tags will be allowed into the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.allowdeletetag
|
||||||
|
# This boolean sets whether deleting tags will be allowed in the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.allowmodifytag
|
||||||
|
# This boolean sets whether a tag may be modified after creation. By default
|
||||||
|
# it won't be.
|
||||||
|
# hooks.allowdeletebranch
|
||||||
|
# This boolean sets whether deleting branches will be allowed in the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.denycreatebranch
|
||||||
|
# This boolean sets whether remotely creating branches will be denied
|
||||||
|
# in the repository. By default this is allowed.
|
||||||
|
#
|
||||||
|
|
||||||
|
# --- Command line
|
||||||
|
refname="$1"
|
||||||
|
oldrev="$2"
|
||||||
|
newrev="$3"
|
||||||
|
|
||||||
|
# --- Safety check
|
||||||
|
if [ -z "$GIT_DIR" ]; then
|
||||||
|
echo "Don't run this script from the command line." >&2
|
||||||
|
echo " (if you want, you could supply GIT_DIR then run" >&2
|
||||||
|
echo " $0 <ref> <oldrev> <newrev>)" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
|
||||||
|
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Config
|
||||||
|
allowunannotated=$(git config --type=bool hooks.allowunannotated)
|
||||||
|
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
|
||||||
|
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
|
||||||
|
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
|
||||||
|
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
|
||||||
|
|
||||||
|
# check for no description
|
||||||
|
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
|
||||||
|
case "$projectdesc" in
|
||||||
|
"Unnamed repository"* | "")
|
||||||
|
echo "*** Project description file hasn't been set" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --- Check types
|
||||||
|
# if $newrev is 0000...0000, it's a commit to delete a ref.
|
||||||
|
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||||
|
if [ "$newrev" = "$zero" ]; then
|
||||||
|
newrev_type=delete
|
||||||
|
else
|
||||||
|
newrev_type=$(git cat-file -t $newrev)
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$refname","$newrev_type" in
|
||||||
|
refs/tags/*,commit)
|
||||||
|
# un-annotated tag
|
||||||
|
short_refname=${refname##refs/tags/}
|
||||||
|
if [ "$allowunannotated" != "true" ]; then
|
||||||
|
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
|
||||||
|
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/tags/*,delete)
|
||||||
|
# delete tag
|
||||||
|
if [ "$allowdeletetag" != "true" ]; then
|
||||||
|
echo "*** Deleting a tag is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/tags/*,tag)
|
||||||
|
# annotated tag
|
||||||
|
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "*** Tag '$refname' already exists." >&2
|
||||||
|
echo "*** Modifying a tag is not allowed in this repository." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/heads/*,commit)
|
||||||
|
# branch
|
||||||
|
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
|
||||||
|
echo "*** Creating a branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/heads/*,delete)
|
||||||
|
# delete branch
|
||||||
|
if [ "$allowdeletebranch" != "true" ]; then
|
||||||
|
echo "*** Deleting a branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/remotes/*,commit)
|
||||||
|
# tracking branch
|
||||||
|
;;
|
||||||
|
refs/remotes/*,delete)
|
||||||
|
# delete tracking branch
|
||||||
|
if [ "$allowdeletebranch" != "true" ]; then
|
||||||
|
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Anything else (is there anything else?)
|
||||||
|
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --- Finished
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# git ls-files --others --exclude-from=.git/info/exclude
|
||||||
|
# Lines that start with '#' are comments.
|
||||||
|
# For a project mostly in C, the following would be a good set of
|
||||||
|
# exclude patterns (uncomment them if you want to use them):
|
||||||
|
# *.[oa]
|
||||||
|
# *~
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
60ecf81e7fa335c4eafc3397dc9b13f168c249c5 refs/heads/main
|
||||||
|
3a77ed856eedec2cedf7f304684aafab9249503c refs/tags/Installer
|
||||||
|
3227da2fa05b1f07c68adf460f29a5a37600c7a6 refs/tags/v1.3.3.7
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0000000000000000000000000000000000000000 60ecf81e7fa335c4eafc3397dc9b13f168c249c5 Gitea <gitea@fake.local> 1774985460 +0000
|
||||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
|||||||
|
P pack-7343d5e973cb618bbbc7374415a5fc2ac45c6814.pack
|
||||||
|
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
# pack-refs with: peeled fully-peeled sorted
|
||||||
|
60ecf81e7fa335c4eafc3397dc9b13f168c249c5 refs/heads/main
|
||||||
|
3a77ed856eedec2cedf7f304684aafab9249503c refs/tags/Installer
|
||||||
|
3227da2fa05b1f07c68adf460f29a5a37600c7a6 refs/tags/v1.3.3.7
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ref: refs/heads/master
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[core]
|
||||||
|
repositoryformatversion = 0
|
||||||
|
filemode = true
|
||||||
|
bare = true
|
||||||
|
[remote "remote_mirror_aJLIYHdBOh"]
|
||||||
|
url = https://github.com/samjage/weather-and-stats
|
||||||
|
mirror = true
|
||||||
|
push = +refs/heads/*:refs/heads/*
|
||||||
|
push = +refs/tags/*:refs/tags/*
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Unnamed repository; edit this file 'description' to name the repository.
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to check the commit log message taken by
|
||||||
|
# applypatch from an e-mail message.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an
|
||||||
|
# appropriate message if it wants to stop the commit. The hook is
|
||||||
|
# allowed to edit the commit message file.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "applypatch-msg".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
|
||||||
|
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
|
||||||
|
:
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to check the commit log message.
|
||||||
|
# Called by "git commit" with one argument, the name of the file
|
||||||
|
# that has the commit message. The hook should exit with non-zero
|
||||||
|
# status after issuing an appropriate message if it wants to stop the
|
||||||
|
# commit. The hook is allowed to edit the commit message file.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "commit-msg".
|
||||||
|
|
||||||
|
# Uncomment the below to add a Signed-off-by line to the message.
|
||||||
|
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
|
||||||
|
# hook is more suited to it.
|
||||||
|
#
|
||||||
|
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||||
|
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
||||||
|
|
||||||
|
# This example catches duplicate Signed-off-by lines.
|
||||||
|
|
||||||
|
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
||||||
|
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
||||||
|
echo >&2 Duplicate Signed-off-by lines.
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
data=$(cat)
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
echo "${data}" | "${hook}"
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini post-receive
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to prepare a packed repository for use over
|
||||||
|
# dumb transports.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "post-update".
|
||||||
|
|
||||||
|
exec git update-server-info
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed
|
||||||
|
# by applypatch from an e-mail message.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an
|
||||||
|
# appropriate message if it wants to stop the commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-applypatch".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
precommit="$(git rev-parse --git-path hooks/pre-commit)"
|
||||||
|
test -x "$precommit" && exec "$precommit" ${1+"$@"}
|
||||||
|
:
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed.
|
||||||
|
# Called by "git commit" with no arguments. The hook should
|
||||||
|
# exit with non-zero status after issuing an appropriate message if
|
||||||
|
# it wants to stop the commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-commit".
|
||||||
|
|
||||||
|
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
against=HEAD
|
||||||
|
else
|
||||||
|
# Initial commit: diff against an empty tree object
|
||||||
|
against=$(git hash-object -t tree /dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If you want to allow non-ASCII filenames set this variable to true.
|
||||||
|
allownonascii=$(git config --type=bool hooks.allownonascii)
|
||||||
|
|
||||||
|
# Redirect output to stderr.
|
||||||
|
exec 1>&2
|
||||||
|
|
||||||
|
# Cross platform projects tend to avoid non-ASCII filenames; prevent
|
||||||
|
# them from being added to the repository. We exploit the fact that the
|
||||||
|
# printable range starts at the space character and ends with tilde.
|
||||||
|
if [ "$allownonascii" != "true" ] &&
|
||||||
|
# Note that the use of brackets around a tr range is ok here, (it's
|
||||||
|
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
||||||
|
# the square bracket bytes happen to fall in the designated range.
|
||||||
|
test $(git diff-index --cached --name-only --diff-filter=A -z $against |
|
||||||
|
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
|
||||||
|
then
|
||||||
|
cat <<\EOF
|
||||||
|
Error: Attempt to add a non-ASCII file name.
|
||||||
|
|
||||||
|
This can cause problems if you want to work with people on other platforms.
|
||||||
|
|
||||||
|
To be portable it is advisable to rename the file.
|
||||||
|
|
||||||
|
If you know what you are doing you can disable this check using:
|
||||||
|
|
||||||
|
git config hooks.allownonascii true
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If there are whitespace errors, print the offending file names and fail.
|
||||||
|
exec git diff-index --check --cached $against --
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to verify what is about to be committed.
|
||||||
|
# Called by "git merge" with no arguments. The hook should
|
||||||
|
# exit with non-zero status after issuing an appropriate message to
|
||||||
|
# stderr if it wants to stop the merge commit.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-merge-commit".
|
||||||
|
|
||||||
|
. git-sh-setup
|
||||||
|
test -x "$GIT_DIR/hooks/pre-commit" &&
|
||||||
|
exec "$GIT_DIR/hooks/pre-commit"
|
||||||
|
:
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to verify what is about to be pushed. Called by "git
|
||||||
|
# push" after it has checked the remote status, but before anything has been
|
||||||
|
# pushed. If this script exits with a non-zero status nothing will be pushed.
|
||||||
|
#
|
||||||
|
# This hook is called with the following parameters:
|
||||||
|
#
|
||||||
|
# $1 -- Name of the remote to which the push is being done
|
||||||
|
# $2 -- URL to which the push is being done
|
||||||
|
#
|
||||||
|
# If pushing without using a named remote those arguments will be equal.
|
||||||
|
#
|
||||||
|
# Information about the commits which are being pushed is supplied as lines to
|
||||||
|
# the standard input in the form:
|
||||||
|
#
|
||||||
|
# <local ref> <local oid> <remote ref> <remote oid>
|
||||||
|
#
|
||||||
|
# This sample shows how to prevent push of commits where the log message starts
|
||||||
|
# with "WIP" (work in progress).
|
||||||
|
|
||||||
|
remote="$1"
|
||||||
|
url="$2"
|
||||||
|
|
||||||
|
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||||
|
|
||||||
|
while read local_ref local_oid remote_ref remote_oid
|
||||||
|
do
|
||||||
|
if test "$local_oid" = "$zero"
|
||||||
|
then
|
||||||
|
# Handle delete
|
||||||
|
:
|
||||||
|
else
|
||||||
|
if test "$remote_oid" = "$zero"
|
||||||
|
then
|
||||||
|
# New branch, examine all commits
|
||||||
|
range="$local_oid"
|
||||||
|
else
|
||||||
|
# Update to existing branch, examine new commits
|
||||||
|
range="$remote_oid..$local_oid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for WIP commit
|
||||||
|
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
|
||||||
|
if test -n "$commit"
|
||||||
|
then
|
||||||
|
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
+169
@@ -0,0 +1,169 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2006, 2008 Junio C Hamano
|
||||||
|
#
|
||||||
|
# The "pre-rebase" hook is run just before "git rebase" starts doing
|
||||||
|
# its job, and can prevent the command from running by exiting with
|
||||||
|
# non-zero status.
|
||||||
|
#
|
||||||
|
# The hook is called with the following parameters:
|
||||||
|
#
|
||||||
|
# $1 -- the upstream the series was forked from.
|
||||||
|
# $2 -- the branch being rebased (or empty when rebasing the current branch).
|
||||||
|
#
|
||||||
|
# This sample shows how to prevent topic branches that are already
|
||||||
|
# merged to 'next' branch from getting rebased, because allowing it
|
||||||
|
# would result in rebasing already published history.
|
||||||
|
|
||||||
|
publish=next
|
||||||
|
basebranch="$1"
|
||||||
|
if test "$#" = 2
|
||||||
|
then
|
||||||
|
topic="refs/heads/$2"
|
||||||
|
else
|
||||||
|
topic=`git symbolic-ref HEAD` ||
|
||||||
|
exit 0 ;# we do not interrupt rebasing detached HEAD
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$topic" in
|
||||||
|
refs/heads/??/*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
exit 0 ;# we do not interrupt others.
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Now we are dealing with a topic branch being rebased
|
||||||
|
# on top of master. Is it OK to rebase it?
|
||||||
|
|
||||||
|
# Does the topic really exist?
|
||||||
|
git show-ref -q "$topic" || {
|
||||||
|
echo >&2 "No such branch $topic"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Is topic fully merged to master?
|
||||||
|
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
|
||||||
|
if test -z "$not_in_master"
|
||||||
|
then
|
||||||
|
echo >&2 "$topic is fully merged to master; better remove it."
|
||||||
|
exit 1 ;# we could allow it, but there is no point.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Is topic ever merged to next? If so you should not be rebasing it.
|
||||||
|
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
|
||||||
|
only_next_2=`git rev-list ^master ${publish} | sort`
|
||||||
|
if test "$only_next_1" = "$only_next_2"
|
||||||
|
then
|
||||||
|
not_in_topic=`git rev-list "^$topic" master`
|
||||||
|
if test -z "$not_in_topic"
|
||||||
|
then
|
||||||
|
echo >&2 "$topic is already up to date with master"
|
||||||
|
exit 1 ;# we could allow it, but there is no point.
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
|
||||||
|
/usr/bin/perl -e '
|
||||||
|
my $topic = $ARGV[0];
|
||||||
|
my $msg = "* $topic has commits already merged to public branch:\n";
|
||||||
|
my (%not_in_next) = map {
|
||||||
|
/^([0-9a-f]+) /;
|
||||||
|
($1 => 1);
|
||||||
|
} split(/\n/, $ARGV[1]);
|
||||||
|
for my $elem (map {
|
||||||
|
/^([0-9a-f]+) (.*)$/;
|
||||||
|
[$1 => $2];
|
||||||
|
} split(/\n/, $ARGV[2])) {
|
||||||
|
if (!exists $not_in_next{$elem->[0]}) {
|
||||||
|
if ($msg) {
|
||||||
|
print STDERR $msg;
|
||||||
|
undef $msg;
|
||||||
|
}
|
||||||
|
print STDERR " $elem->[1]\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' "$topic" "$not_in_next" "$not_in_master"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
<<\DOC_END
|
||||||
|
|
||||||
|
This sample hook safeguards topic branches that have been
|
||||||
|
published from being rewound.
|
||||||
|
|
||||||
|
The workflow assumed here is:
|
||||||
|
|
||||||
|
* Once a topic branch forks from "master", "master" is never
|
||||||
|
merged into it again (either directly or indirectly).
|
||||||
|
|
||||||
|
* Once a topic branch is fully cooked and merged into "master",
|
||||||
|
it is deleted. If you need to build on top of it to correct
|
||||||
|
earlier mistakes, a new topic branch is created by forking at
|
||||||
|
the tip of the "master". This is not strictly necessary, but
|
||||||
|
it makes it easier to keep your history simple.
|
||||||
|
|
||||||
|
* Whenever you need to test or publish your changes to topic
|
||||||
|
branches, merge them into "next" branch.
|
||||||
|
|
||||||
|
The script, being an example, hardcodes the publish branch name
|
||||||
|
to be "next", but it is trivial to make it configurable via
|
||||||
|
$GIT_DIR/config mechanism.
|
||||||
|
|
||||||
|
With this workflow, you would want to know:
|
||||||
|
|
||||||
|
(1) ... if a topic branch has ever been merged to "next". Young
|
||||||
|
topic branches can have stupid mistakes you would rather
|
||||||
|
clean up before publishing, and things that have not been
|
||||||
|
merged into other branches can be easily rebased without
|
||||||
|
affecting other people. But once it is published, you would
|
||||||
|
not want to rewind it.
|
||||||
|
|
||||||
|
(2) ... if a topic branch has been fully merged to "master".
|
||||||
|
Then you can delete it. More importantly, you should not
|
||||||
|
build on top of it -- other people may already want to
|
||||||
|
change things related to the topic as patches against your
|
||||||
|
"master", so if you need further changes, it is better to
|
||||||
|
fork the topic (perhaps with the same name) afresh from the
|
||||||
|
tip of "master".
|
||||||
|
|
||||||
|
Let's look at this example:
|
||||||
|
|
||||||
|
o---o---o---o---o---o---o---o---o---o "next"
|
||||||
|
/ / / /
|
||||||
|
/ a---a---b A / /
|
||||||
|
/ / / /
|
||||||
|
/ / c---c---c---c B /
|
||||||
|
/ / / \ /
|
||||||
|
/ / / b---b C \ /
|
||||||
|
/ / / / \ /
|
||||||
|
---o---o---o---o---o---o---o---o---o---o---o "master"
|
||||||
|
|
||||||
|
|
||||||
|
A, B and C are topic branches.
|
||||||
|
|
||||||
|
* A has one fix since it was merged up to "next".
|
||||||
|
|
||||||
|
* B has finished. It has been fully merged up to "master" and "next",
|
||||||
|
and is ready to be deleted.
|
||||||
|
|
||||||
|
* C has not merged to "next" at all.
|
||||||
|
|
||||||
|
We would want to allow C to be rebased, refuse A, and encourage
|
||||||
|
B to be deleted.
|
||||||
|
|
||||||
|
To compute (1):
|
||||||
|
|
||||||
|
git rev-list ^master ^topic next
|
||||||
|
git rev-list ^master next
|
||||||
|
|
||||||
|
if these match, topic has not merged in next at all.
|
||||||
|
|
||||||
|
To compute (2):
|
||||||
|
|
||||||
|
git rev-list master..topic
|
||||||
|
|
||||||
|
if this is empty, it is fully merged to "master".
|
||||||
|
|
||||||
|
DOC_END
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
data=$(cat)
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0)/..}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
echo "${data}" | "${hook}"
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini pre-receive
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to make use of push options.
|
||||||
|
# The example simply echoes all push options that start with 'echoback='
|
||||||
|
# and rejects all pushes when the "reject" push option is used.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "pre-receive".
|
||||||
|
|
||||||
|
if test -n "$GIT_PUSH_OPTION_COUNT"
|
||||||
|
then
|
||||||
|
i=0
|
||||||
|
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
|
||||||
|
do
|
||||||
|
eval "value=\$GIT_PUSH_OPTION_$i"
|
||||||
|
case "$value" in
|
||||||
|
echoback=*)
|
||||||
|
echo "echo from the pre-receive-hook: ${value#*=}" >&2
|
||||||
|
;;
|
||||||
|
reject)
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
fi
|
||||||
Executable
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to prepare the commit log message.
|
||||||
|
# Called by "git commit" with the name of the file that has the
|
||||||
|
# commit message, followed by the description of the commit
|
||||||
|
# message's source. The hook's purpose is to edit the commit
|
||||||
|
# message file. If the hook fails with a non-zero status,
|
||||||
|
# the commit is aborted.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "prepare-commit-msg".
|
||||||
|
|
||||||
|
# This hook includes three examples. The first one removes the
|
||||||
|
# "# Please enter the commit message..." help message.
|
||||||
|
#
|
||||||
|
# The second includes the output of "git diff --name-status -r"
|
||||||
|
# into the message, just before the "git status" output. It is
|
||||||
|
# commented because it doesn't cope with --amend or with squashed
|
||||||
|
# commits.
|
||||||
|
#
|
||||||
|
# The third example adds a Signed-off-by line to the message, that can
|
||||||
|
# still be edited. This is rarely a good idea.
|
||||||
|
|
||||||
|
COMMIT_MSG_FILE=$1
|
||||||
|
COMMIT_SOURCE=$2
|
||||||
|
SHA1=$3
|
||||||
|
|
||||||
|
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
|
||||||
|
|
||||||
|
# case "$COMMIT_SOURCE,$SHA1" in
|
||||||
|
# ,|template,)
|
||||||
|
# /usr/bin/perl -i.bak -pe '
|
||||||
|
# print "\n" . `git diff --cached --name-status -r`
|
||||||
|
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
|
||||||
|
# *) ;;
|
||||||
|
# esac
|
||||||
|
|
||||||
|
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||||
|
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
|
||||||
|
# if test -z "$COMMIT_SOURCE"
|
||||||
|
# then
|
||||||
|
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
|
||||||
|
# fi
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini proc-receive
|
||||||
+78
@@ -0,0 +1,78 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to update a checked-out tree on a git push.
|
||||||
|
#
|
||||||
|
# This hook is invoked by git-receive-pack(1) when it reacts to git
|
||||||
|
# push and updates reference(s) in its repository, and when the push
|
||||||
|
# tries to update the branch that is currently checked out and the
|
||||||
|
# receive.denyCurrentBranch configuration variable is set to
|
||||||
|
# updateInstead.
|
||||||
|
#
|
||||||
|
# By default, such a push is refused if the working tree and the index
|
||||||
|
# of the remote repository has any difference from the currently
|
||||||
|
# checked out commit; when both the working tree and the index match
|
||||||
|
# the current commit, they are updated to match the newly pushed tip
|
||||||
|
# of the branch. This hook is to be used to override the default
|
||||||
|
# behaviour; however the code below reimplements the default behaviour
|
||||||
|
# as a starting point for convenient modification.
|
||||||
|
#
|
||||||
|
# The hook receives the commit with which the tip of the current
|
||||||
|
# branch is going to be updated:
|
||||||
|
commit=$1
|
||||||
|
|
||||||
|
# It can exit with a non-zero status to refuse the push (when it does
|
||||||
|
# so, it must not modify the index or the working tree).
|
||||||
|
die () {
|
||||||
|
echo >&2 "$*"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Or it can make any necessary changes to the working tree and to the
|
||||||
|
# index to bring them to the desired state when the tip of the current
|
||||||
|
# branch is updated to the new commit, and exit with a zero status.
|
||||||
|
#
|
||||||
|
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
|
||||||
|
# in order to emulate git fetch that is run in the reverse direction
|
||||||
|
# with git push, as the two-tree form of git read-tree -u -m is
|
||||||
|
# essentially the same as git switch or git checkout that switches
|
||||||
|
# branches while keeping the local changes in the working tree that do
|
||||||
|
# not interfere with the difference between the branches.
|
||||||
|
|
||||||
|
# The below is a more-or-less exact translation to shell of the C code
|
||||||
|
# for the default behaviour for git's push-to-checkout hook defined in
|
||||||
|
# the push_to_deploy() function in builtin/receive-pack.c.
|
||||||
|
#
|
||||||
|
# Note that the hook will be executed from the repository directory,
|
||||||
|
# not from the working tree, so if you want to perform operations on
|
||||||
|
# the working tree, you will have to adapt your code accordingly, e.g.
|
||||||
|
# by adding "cd .." or using relative paths.
|
||||||
|
|
||||||
|
if ! git update-index -q --ignore-submodules --refresh
|
||||||
|
then
|
||||||
|
die "Up-to-date check failed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-files --quiet --ignore-submodules --
|
||||||
|
then
|
||||||
|
die "Working directory has unstaged changes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is a rough translation of:
|
||||||
|
#
|
||||||
|
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
|
||||||
|
if git cat-file -e HEAD 2>/dev/null
|
||||||
|
then
|
||||||
|
head=HEAD
|
||||||
|
else
|
||||||
|
head=$(git hash-object -t tree --stdin </dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-index --quiet --cached --ignore-submodules $head --
|
||||||
|
then
|
||||||
|
die "Working directory has staged changes"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git read-tree -u -m "$commit"
|
||||||
|
then
|
||||||
|
die "Could not update working tree to new HEAD"
|
||||||
|
fi
|
||||||
Executable
+77
@@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# An example hook script to validate a patch (and/or patch series) before
|
||||||
|
# sending it via email.
|
||||||
|
#
|
||||||
|
# The hook should exit with non-zero status after issuing an appropriate
|
||||||
|
# message if it wants to prevent the email(s) from being sent.
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "sendemail-validate".
|
||||||
|
#
|
||||||
|
# By default, it will only check that the patch(es) can be applied on top of
|
||||||
|
# the default upstream branch without conflicts in a secondary worktree. After
|
||||||
|
# validation (successful or not) of the last patch of a series, the worktree
|
||||||
|
# will be deleted.
|
||||||
|
#
|
||||||
|
# The following config variables can be set to change the default remote and
|
||||||
|
# remote ref that are used to apply the patches against:
|
||||||
|
#
|
||||||
|
# sendemail.validateRemote (default: origin)
|
||||||
|
# sendemail.validateRemoteRef (default: HEAD)
|
||||||
|
#
|
||||||
|
# Replace the TODO placeholders with appropriate checks according to your
|
||||||
|
# needs.
|
||||||
|
|
||||||
|
validate_cover_letter () {
|
||||||
|
file="$1"
|
||||||
|
# TODO: Replace with appropriate checks (e.g. spell checking).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_patch () {
|
||||||
|
file="$1"
|
||||||
|
# Ensure that the patch applies without conflicts.
|
||||||
|
git am -3 "$file" || return
|
||||||
|
# TODO: Replace with appropriate checks for this patch
|
||||||
|
# (e.g. checkpatch.pl).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
validate_series () {
|
||||||
|
# TODO: Replace with appropriate checks for the whole series
|
||||||
|
# (e.g. quick build, coding style checks, etc.).
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
# main -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
|
||||||
|
then
|
||||||
|
remote=$(git config --default origin --get sendemail.validateRemote) &&
|
||||||
|
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
|
||||||
|
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
|
||||||
|
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
|
||||||
|
git config --replace-all sendemail.validateWorktree "$worktree"
|
||||||
|
else
|
||||||
|
worktree=$(git config --get sendemail.validateWorktree)
|
||||||
|
fi || {
|
||||||
|
echo "sendemail-validate: error: failed to prepare worktree" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
unset GIT_DIR GIT_WORK_TREE
|
||||||
|
cd "$worktree" &&
|
||||||
|
|
||||||
|
if grep -q "^diff --git " "$1"
|
||||||
|
then
|
||||||
|
validate_patch "$1"
|
||||||
|
else
|
||||||
|
validate_cover_letter "$1"
|
||||||
|
fi &&
|
||||||
|
|
||||||
|
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
|
||||||
|
then
|
||||||
|
git config --unset-all sendemail.validateWorktree &&
|
||||||
|
trap 'git worktree remove -ff "$worktree"' EXIT &&
|
||||||
|
validate_series
|
||||||
|
fi
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
exitcodes=""
|
||||||
|
hookname=$(basename $0)
|
||||||
|
GIT_DIR=${GIT_DIR:-$(dirname $0/..)}
|
||||||
|
|
||||||
|
for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do
|
||||||
|
test -x "${hook}" && test -f "${hook}" || continue
|
||||||
|
"${hook}" $1 $2 $3
|
||||||
|
exitcodes="${exitcodes} $?"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in ${exitcodes}; do
|
||||||
|
[ ${i} -eq 0 ] || exit ${i}
|
||||||
|
done
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# AUTO GENERATED BY GITEA, DO NOT MODIFY
|
||||||
|
/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini update $1 $2 $3
|
||||||
+128
@@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# An example hook script to block unannotated tags from entering.
|
||||||
|
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
|
||||||
|
#
|
||||||
|
# To enable this hook, rename this file to "update".
|
||||||
|
#
|
||||||
|
# Config
|
||||||
|
# ------
|
||||||
|
# hooks.allowunannotated
|
||||||
|
# This boolean sets whether unannotated tags will be allowed into the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.allowdeletetag
|
||||||
|
# This boolean sets whether deleting tags will be allowed in the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.allowmodifytag
|
||||||
|
# This boolean sets whether a tag may be modified after creation. By default
|
||||||
|
# it won't be.
|
||||||
|
# hooks.allowdeletebranch
|
||||||
|
# This boolean sets whether deleting branches will be allowed in the
|
||||||
|
# repository. By default they won't be.
|
||||||
|
# hooks.denycreatebranch
|
||||||
|
# This boolean sets whether remotely creating branches will be denied
|
||||||
|
# in the repository. By default this is allowed.
|
||||||
|
#
|
||||||
|
|
||||||
|
# --- Command line
|
||||||
|
refname="$1"
|
||||||
|
oldrev="$2"
|
||||||
|
newrev="$3"
|
||||||
|
|
||||||
|
# --- Safety check
|
||||||
|
if [ -z "$GIT_DIR" ]; then
|
||||||
|
echo "Don't run this script from the command line." >&2
|
||||||
|
echo " (if you want, you could supply GIT_DIR then run" >&2
|
||||||
|
echo " $0 <ref> <oldrev> <newrev>)" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
|
||||||
|
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Config
|
||||||
|
allowunannotated=$(git config --type=bool hooks.allowunannotated)
|
||||||
|
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
|
||||||
|
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
|
||||||
|
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
|
||||||
|
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
|
||||||
|
|
||||||
|
# check for no description
|
||||||
|
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
|
||||||
|
case "$projectdesc" in
|
||||||
|
"Unnamed repository"* | "")
|
||||||
|
echo "*** Project description file hasn't been set" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --- Check types
|
||||||
|
# if $newrev is 0000...0000, it's a commit to delete a ref.
|
||||||
|
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||||
|
if [ "$newrev" = "$zero" ]; then
|
||||||
|
newrev_type=delete
|
||||||
|
else
|
||||||
|
newrev_type=$(git cat-file -t $newrev)
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$refname","$newrev_type" in
|
||||||
|
refs/tags/*,commit)
|
||||||
|
# un-annotated tag
|
||||||
|
short_refname=${refname##refs/tags/}
|
||||||
|
if [ "$allowunannotated" != "true" ]; then
|
||||||
|
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
|
||||||
|
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/tags/*,delete)
|
||||||
|
# delete tag
|
||||||
|
if [ "$allowdeletetag" != "true" ]; then
|
||||||
|
echo "*** Deleting a tag is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/tags/*,tag)
|
||||||
|
# annotated tag
|
||||||
|
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
echo "*** Tag '$refname' already exists." >&2
|
||||||
|
echo "*** Modifying a tag is not allowed in this repository." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/heads/*,commit)
|
||||||
|
# branch
|
||||||
|
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
|
||||||
|
echo "*** Creating a branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/heads/*,delete)
|
||||||
|
# delete branch
|
||||||
|
if [ "$allowdeletebranch" != "true" ]; then
|
||||||
|
echo "*** Deleting a branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
refs/remotes/*,commit)
|
||||||
|
# tracking branch
|
||||||
|
;;
|
||||||
|
refs/remotes/*,delete)
|
||||||
|
# delete tracking branch
|
||||||
|
if [ "$allowdeletebranch" != "true" ]; then
|
||||||
|
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Anything else (is there anything else?)
|
||||||
|
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --- Finished
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# git ls-files --others --exclude-from=.git/info/exclude
|
||||||
|
# Lines that start with '#' are comments.
|
||||||
|
# For a project mostly in C, the following would be a good set of
|
||||||
|
# exclude patterns (uncomment them if you want to use them):
|
||||||
|
# *.[oa]
|
||||||
|
# *~
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
79abd206152386bb2af4e6d3f9ac31f6dab69620 refs/heads/master
|
||||||
|
561e473819f2b574bfdea09ea598d0e6ba4b476e refs/pull/2/head
|
||||||
|
80f7716f21196621c1ccb580dee5456f43f5ca2f refs/pull/3/head
|
||||||
|
aada37e533e7f3ec12acf11e2a86c349108be25b refs/tags/v1.2
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0000000000000000000000000000000000000000 79abd206152386bb2af4e6d3f9ac31f6dab69620 Gitea <gitea@fake.local> 1774985493 +0000
|
||||||
Binary file not shown.
@@ -0,0 +1,2 @@
|
|||||||
|
P pack-a839164c27d74153486a9d4329109690d31a1570.pack
|
||||||
|
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,5 @@
|
|||||||
|
# pack-refs with: peeled fully-peeled sorted
|
||||||
|
79abd206152386bb2af4e6d3f9ac31f6dab69620 refs/heads/master
|
||||||
|
561e473819f2b574bfdea09ea598d0e6ba4b476e refs/pull/2/head
|
||||||
|
80f7716f21196621c1ccb580dee5456f43f5ca2f refs/pull/3/head
|
||||||
|
aada37e533e7f3ec12acf11e2a86c349108be25b refs/tags/v1.2
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
From 561e473819f2b574bfdea09ea598d0e6ba4b476e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cory Todd <cory@corytodd.us>
|
||||||
|
Date: Tue, 24 Mar 2026 21:46:14 -0700
|
||||||
|
Subject: [PATCH] docs: fix install instructions
|
||||||
|
|
||||||
|
kpackagetool6 should be given an explicit package type. The default is
|
||||||
|
generic, in spite of the metadata.json file.
|
||||||
|
---
|
||||||
|
README.md | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/README.md b/README.md
|
||||||
|
index 0b11a59..e0ae5ff 100644
|
||||||
|
--- a/README.md
|
||||||
|
+++ b/README.md
|
||||||
|
@@ -29,7 +29,7 @@ All stats update on configurable intervals. Each section can be toggled on or of
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/samjage/weather-and-stats.git
|
||||||
|
-kpackagetool6 --install weather-and-stats
|
||||||
|
+kpackagetool6 --type Plasma/Applet --install weather-and-stats
|
||||||
|
```
|
||||||
|
|
||||||
|
Then right-click your panel → **Add Widgets** → search for **Weather && Stats**.
|
||||||
|
@@ -37,7 +37,7 @@ Then right-click your panel → **Add Widgets** → search for **Weather && Stat
|
||||||
|
### To update after changes
|
||||||
|
|
||||||
|
```bash
|
||||||
|
-kpackagetool6 --upgrade weather-and-stats
|
||||||
|
+kpackagetool6 --type Plasma/Applet --upgrade weather-and-stats
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
From 80f7716f21196621c1ccb580dee5456f43f5ca2f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cory Todd <cory@corytodd.us>
|
||||||
|
Date: Tue, 24 Mar 2026 22:01:54 -0700
|
||||||
|
Subject: [PATCH] feat: make nerd font optional
|
||||||
|
|
||||||
|
Move hardcodedd nerd fonts codepoints into a table. The default behavior
|
||||||
|
is still nerdFont. There is no general icon for network so drop the icon
|
||||||
|
in favor of the very clear up and down arrows.
|
||||||
|
---
|
||||||
|
contents/config/main.xml | 3 +
|
||||||
|
contents/ui/configGeneral.qml | 11 +++
|
||||||
|
contents/ui/main.qml | 122 +++++++++++++++++++++++-----------
|
||||||
|
3 files changed, 97 insertions(+), 39 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/contents/config/main.xml b/contents/config/main.xml
|
||||||
|
index 582dcab..03ca8ec 100644
|
||||||
|
--- a/contents/config/main.xml
|
||||||
|
+++ b/contents/config/main.xml
|
||||||
|
@@ -44,5 +44,8 @@
|
||||||
|
<entry name="showNetwork" type="Bool">
|
||||||
|
<default>true</default>
|
||||||
|
</entry>
|
||||||
|
+ <entry name="useNerdFont" type="Bool">
|
||||||
|
+ <default>true</default>
|
||||||
|
+ </entry>
|
||||||
|
</group>
|
||||||
|
</kcfg>
|
||||||
|
diff --git a/contents/ui/configGeneral.qml b/contents/ui/configGeneral.qml
|
||||||
|
index 346731b..381bf70 100644
|
||||||
|
--- a/contents/ui/configGeneral.qml
|
||||||
|
+++ b/contents/ui/configGeneral.qml
|
||||||
|
@@ -19,6 +19,7 @@ Item {
|
||||||
|
property bool cfg_showCpuUsage: true
|
||||||
|
property bool cfg_showMemory: true
|
||||||
|
property bool cfg_showNetwork: true
|
||||||
|
+ property bool cfg_useNerdFont: true
|
||||||
|
|
||||||
|
component SectionHeader: ColumnLayout {
|
||||||
|
property string title: ""
|
||||||
|
@@ -205,6 +206,16 @@ Item {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // ── APPEARANCE ────────────────────────────────────────────────────────
|
||||||
|
+
|
||||||
|
+ SectionHeader { title: "APPEARANCE" }
|
||||||
|
+
|
||||||
|
+ QQC2.CheckBox {
|
||||||
|
+ text: "Use Nerd Font icons (disable for plain Unicode fallback)"
|
||||||
|
+ checked: cfg_useNerdFont
|
||||||
|
+ onToggled: cfg_useNerdFont = checked
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
Item { Layout.fillHeight: true; Layout.minimumHeight: 16 }
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/contents/ui/main.qml b/contents/ui/main.qml
|
||||||
|
index f954b18..e19e8a4 100644
|
||||||
|
--- a/contents/ui/main.qml
|
||||||
|
+++ b/contents/ui/main.qml
|
||||||
|
@@ -21,9 +21,21 @@ PlasmoidItem {
|
||||||
|
property bool showCpuUsage: Plasmoid.configuration.showCpuUsage !== false
|
||||||
|
property bool showMemory: Plasmoid.configuration.showMemory !== false
|
||||||
|
property bool showNetwork: Plasmoid.configuration.showNetwork !== false
|
||||||
|
+ property bool useNerdFont: Plasmoid.configuration.useNerdFont !== false
|
||||||
|
+
|
||||||
|
+ readonly property var ic: useNerdFont ? ({
|
||||||
|
+ cpuTemp: "\uf2c8", cpu: "\uf2db", mem: "\ue266",
|
||||||
|
+ down: "\uf063", up: "\uf062",
|
||||||
|
+ weather: { clear: "\ue30d", cloudy: "\ue312", fog: "\ue313", rain: "\ue318", snow: "\ue31a", storm: "\ue32e" }
|
||||||
|
+ }) : ({
|
||||||
|
+ cpuTemp: "\u0394", cpu: "\u2394", mem: "\u2630",
|
||||||
|
+ down: "\u2193", up: "\u2191",
|
||||||
|
+ weather: { clear: "\u2600\ufe0e", cloudy: "\u2601\ufe0e", fog: "\u2248", rain: "\u2602\ufe0e", snow: "\u2744\ufe0e", storm: "\u2607" }
|
||||||
|
+ })
|
||||||
|
|
||||||
|
// ── Live state ────────────────────────────────────────────────────────────
|
||||||
|
- property string weatherIcon: ""
|
||||||
|
+ property int weatherCode: -1 // -1 = not yet fetched; computed binding keeps weatherIcon reactive to icon set changes
|
||||||
|
+ property string weatherIcon: weatherCode >= 0 ? iconForCode(weatherCode) : ""
|
||||||
|
property string temperature: "--"
|
||||||
|
property string weatherCondition: ""
|
||||||
|
property int cpuTempRaw: -1
|
||||||
|
@@ -54,54 +66,86 @@ PlasmoidItem {
|
||||||
|
// ── Panel display ─────────────────────────────────────────────────────────
|
||||||
|
preferredRepresentation: fullRepresentation
|
||||||
|
|
||||||
|
- fullRepresentation: PlasmaComponents.Label {
|
||||||
|
+ fullRepresentation: RowLayout {
|
||||||
|
Layout.fillHeight: true
|
||||||
|
- Layout.preferredWidth: implicitWidth + 16
|
||||||
|
- verticalAlignment: Text.AlignVCenter
|
||||||
|
- textFormat: Text.RichText
|
||||||
|
-
|
||||||
|
- text: {
|
||||||
|
- // CPU temp is red when above threshold
|
||||||
|
- var hot = root.cpuTempRaw > 0 && root.cpuTempRaw >= root.cpuTempThreshold
|
||||||
|
-
|
||||||
|
- // Weather section
|
||||||
|
- var s = root.weatherIcon + "\u00a0\u00a0" + root.temperature + "°" + (root.fahrenheit ? "F" : "C")
|
||||||
|
- if (root.showCondition && root.weatherCondition !== "")
|
||||||
|
- s += " " + root.weatherCondition
|
||||||
|
-
|
||||||
|
- // CPU + Memory stats
|
||||||
|
- var cpuMem = []
|
||||||
|
- if (root.showCpuTemp) {
|
||||||
|
- var tempStr = "\uf2c8\u00a0\u00a0" + root.cpuTempDisplay
|
||||||
|
- cpuMem.push(hot ? "<font color='#ff5555'>" + tempStr + "</font>" : tempStr)
|
||||||
|
+ spacing: 0
|
||||||
|
+
|
||||||
|
+ // ── Main label (weather + cpu/mem) ────────────────────────────────────
|
||||||
|
+ PlasmaComponents.Label {
|
||||||
|
+ Layout.fillHeight: true
|
||||||
|
+ Layout.preferredWidth: implicitWidth + 16
|
||||||
|
+ verticalAlignment: Text.AlignVCenter
|
||||||
|
+ textFormat: Text.RichText
|
||||||
|
+
|
||||||
|
+ text: {
|
||||||
|
+ var hot = root.cpuTempRaw > 0 && root.cpuTempRaw >= root.cpuTempThreshold
|
||||||
|
+ var sp = "\u00a0\u00a0\u00a0\u00a0"
|
||||||
|
+ var div = "\u00a0\u00a0\u2502\u00a0\u00a0"
|
||||||
|
+
|
||||||
|
+ var s = root.weatherIcon + "\u00a0\u00a0" + root.temperature + "°" + (root.fahrenheit ? "F" : "C")
|
||||||
|
+ if (root.showCondition && root.weatherCondition !== "")
|
||||||
|
+ s += " " + root.weatherCondition
|
||||||
|
+
|
||||||
|
+ var cpuMem = []
|
||||||
|
+ if (root.showCpuTemp) {
|
||||||
|
+ var tempStr = root.ic.cpuTemp + "\u00a0\u00a0" + root.cpuTempDisplay
|
||||||
|
+ cpuMem.push(hot ? "<font color='#ff5555'>" + tempStr + "</font>" : tempStr)
|
||||||
|
+ }
|
||||||
|
+ if (root.showCpuUsage)
|
||||||
|
+ cpuMem.push(root.ic.cpu + "\u00a0\u00a0" + (root.cpuUsage >= 0 ? padPct(root.cpuUsage) : "\u00a0--"))
|
||||||
|
+ if (root.showMemory)
|
||||||
|
+ cpuMem.push(root.ic.mem + "\u00a0\u00a0" + (root.memUsage >= 0 ? padPct(root.memUsage) : "\u00a0--"))
|
||||||
|
+
|
||||||
|
+ if (cpuMem.length > 0) s += div + cpuMem.join(sp)
|
||||||
|
+ if (root.showNetwork) s += div
|
||||||
|
+
|
||||||
|
+ return s
|
||||||
|
}
|
||||||
|
- if (root.showCpuUsage)
|
||||||
|
- cpuMem.push("\uf2db\u00a0\u00a0" + (root.cpuUsage >= 0 ? padPct(root.cpuUsage) : "\u00a0--"))
|
||||||
|
- if (root.showMemory)
|
||||||
|
- cpuMem.push("\ue266\u00a0\u00a0" + (root.memUsage >= 0 ? padPct(root.memUsage) : "\u00a0--"))
|
||||||
|
-
|
||||||
|
- var sp = "\u00a0\u00a0\u00a0\u00a0"
|
||||||
|
- var div = "\u00a0\u00a0\u2502\u00a0\u00a0"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (cpuMem.length > 0) s += div + cpuMem.join(sp)
|
||||||
|
+ // ── Network ───────────────────────────────────────────────────────────
|
||||||
|
+ // A hidden reference label measures the pixel width of the widest
|
||||||
|
+ // possible value. Both visible labels are pinned to that exact width
|
||||||
|
+ // (min = preferred = max) so content changes never affect their size.
|
||||||
|
+ PlasmaComponents.Label {
|
||||||
|
+ id: netRef
|
||||||
|
+ visible: false
|
||||||
|
+ font.family: "monospace"
|
||||||
|
+ text: "000 MB/s"
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- // Network stats
|
||||||
|
- if (root.showNetwork)
|
||||||
|
- s += div + "\uf0ac" + sp + "\uf063\u00a0\u00a0" + formatNetSpeed(root.netDown) + sp + "\uf062\u00a0\u00a0" + formatNetSpeed(root.netUp)
|
||||||
|
+ PlasmaComponents.Label {
|
||||||
|
+ visible: root.showNetwork
|
||||||
|
+ font.family: "monospace"
|
||||||
|
+ Layout.fillHeight: true
|
||||||
|
+ Layout.minimumWidth: netRef.implicitWidth
|
||||||
|
+ Layout.preferredWidth: netRef.implicitWidth
|
||||||
|
+ Layout.maximumWidth: netRef.implicitWidth
|
||||||
|
+ verticalAlignment: Text.AlignVCenter
|
||||||
|
+ text: root.ic.down + " " + formatNetSpeed(root.netDown)
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- return s + " "
|
||||||
|
+ PlasmaComponents.Label {
|
||||||
|
+ visible: root.showNetwork
|
||||||
|
+ font.family: "monospace"
|
||||||
|
+ Layout.fillHeight: true
|
||||||
|
+ Layout.minimumWidth: netRef.implicitWidth
|
||||||
|
+ Layout.preferredWidth: netRef.implicitWidth
|
||||||
|
+ Layout.maximumWidth: netRef.implicitWidth
|
||||||
|
+ verticalAlignment: Text.AlignVCenter
|
||||||
|
+ text: " " + root.ic.up + " " + formatNetSpeed(root.netUp) + " "
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Weather ───────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
function iconForCode(code) {
|
||||||
|
- if (code === 0) return "\ue30d"
|
||||||
|
- if (code <= 3) return "\ue312"
|
||||||
|
- if (code === 45 || code === 48) return "\ue313"
|
||||||
|
- if ([51,53,55,61,63,65].indexOf(code) >= 0) return "\ue318"
|
||||||
|
- if ([71,73,75].indexOf(code) >= 0) return "\ue31a"
|
||||||
|
- return "\ue32e"
|
||||||
|
+ if (code === 0) return ic.weather.clear
|
||||||
|
+ if (code <= 3) return ic.weather.cloudy
|
||||||
|
+ if (code === 45 || code === 48) return ic.weather.fog
|
||||||
|
+ if ([51,53,55,61,63,65].indexOf(code) >= 0) return ic.weather.rain
|
||||||
|
+ if ([71,73,75].indexOf(code) >= 0) return ic.weather.snow
|
||||||
|
+ return ic.weather.storm
|
||||||
|
}
|
||||||
|
|
||||||
|
function conditionForCode(code) {
|
||||||
|
@@ -132,7 +176,7 @@ PlasmoidItem {
|
||||||
|
if (req.readyState === XMLHttpRequest.DONE && req.status === 200) {
|
||||||
|
var cw = JSON.parse(req.responseText).current_weather
|
||||||
|
root.temperature = Math.round(cw.temperature).toString()
|
||||||
|
- root.weatherIcon = root.iconForCode(cw.weathercode)
|
||||||
|
+ root.weatherCode = cw.weathercode
|
||||||
|
root.weatherCondition = root.conditionForCode(cw.weathercode)
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
@@ -0,0 +1,98 @@
|
|||||||
|
APP_NAME = Invoke Smoke
|
||||||
|
RUN_MODE = prod
|
||||||
|
RUN_USER = git
|
||||||
|
WORK_PATH = /data/gitea
|
||||||
|
|
||||||
|
[repository]
|
||||||
|
ROOT = /data/git/repositories
|
||||||
|
|
||||||
|
[repository.local]
|
||||||
|
LOCAL_COPY_PATH = /data/gitea/tmp/local-repo
|
||||||
|
|
||||||
|
[repository.upload]
|
||||||
|
TEMP_PATH = /data/gitea/uploads
|
||||||
|
|
||||||
|
[server]
|
||||||
|
APP_DATA_PATH = /data/gitea
|
||||||
|
DOMAIN = gitea.invokesmoke.dev
|
||||||
|
SSH_DOMAIN = gitea.invokesmoke.dev
|
||||||
|
HTTP_PORT = 3000
|
||||||
|
ROOT_URL = https://gitea.invokesmoke.dev/
|
||||||
|
DISABLE_SSH = false
|
||||||
|
SSH_PORT = 222
|
||||||
|
SSH_LISTEN_PORT = 22
|
||||||
|
LFS_START_SERVER = true
|
||||||
|
LFS_JWT_SECRET = JCxgC_mgPJ1ZZcmWeo-QSKvLWX61ukgTG8yGLmPEBps
|
||||||
|
OFFLINE_MODE = true
|
||||||
|
|
||||||
|
[database]
|
||||||
|
PATH = /data/gitea/gitea.db
|
||||||
|
DB_TYPE = sqlite3
|
||||||
|
HOST = localhost:3306
|
||||||
|
NAME = gitea
|
||||||
|
USER = root
|
||||||
|
PASSWD =
|
||||||
|
LOG_SQL = false
|
||||||
|
SCHEMA =
|
||||||
|
SSL_MODE = disable
|
||||||
|
|
||||||
|
[indexer]
|
||||||
|
ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve
|
||||||
|
|
||||||
|
[session]
|
||||||
|
PROVIDER_CONFIG = /data/gitea/sessions
|
||||||
|
PROVIDER = file
|
||||||
|
|
||||||
|
[picture]
|
||||||
|
AVATAR_UPLOAD_PATH = /data/gitea/avatars
|
||||||
|
REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars
|
||||||
|
|
||||||
|
[attachment]
|
||||||
|
PATH = /data/gitea/attachments
|
||||||
|
|
||||||
|
[log]
|
||||||
|
MODE = console
|
||||||
|
LEVEL = info
|
||||||
|
ROOT_PATH = /data/gitea/log
|
||||||
|
|
||||||
|
[security]
|
||||||
|
INSTALL_LOCK = true
|
||||||
|
SECRET_KEY =
|
||||||
|
REVERSE_PROXY_LIMIT = 1
|
||||||
|
REVERSE_PROXY_TRUSTED_PROXIES = *
|
||||||
|
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NzQ5ODQ2Nzd9.Dhkk85e4KZQLKQTeu8Lizza_AM6iaknadiynF1msvlo
|
||||||
|
PASSWORD_HASH_ALGO = pbkdf2
|
||||||
|
|
||||||
|
[service]
|
||||||
|
DISABLE_REGISTRATION = false
|
||||||
|
REQUIRE_SIGNIN_VIEW = false
|
||||||
|
REGISTER_EMAIL_CONFIRM = false
|
||||||
|
ENABLE_NOTIFY_MAIL = false
|
||||||
|
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
|
||||||
|
ENABLE_CAPTCHA = false
|
||||||
|
DEFAULT_KEEP_EMAIL_PRIVATE = false
|
||||||
|
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
|
||||||
|
DEFAULT_ENABLE_TIMETRACKING = true
|
||||||
|
NO_REPLY_ADDRESS = noreply.localhost
|
||||||
|
|
||||||
|
[lfs]
|
||||||
|
PATH = /data/git/lfs
|
||||||
|
|
||||||
|
[mailer]
|
||||||
|
ENABLED = false
|
||||||
|
|
||||||
|
[openid]
|
||||||
|
ENABLE_OPENID_SIGNIN = true
|
||||||
|
ENABLE_OPENID_SIGNUP = true
|
||||||
|
|
||||||
|
[cron.update_checker]
|
||||||
|
ENABLED = true
|
||||||
|
|
||||||
|
[repository.pull-request]
|
||||||
|
DEFAULT_MERGE_STYLE = merge
|
||||||
|
|
||||||
|
[repository.signing]
|
||||||
|
DEFAULT_TRUST_MODEL = committer
|
||||||
|
|
||||||
|
[oauth2]
|
||||||
|
JWT_SECRET = rdq5KWVdkjHzCQuZMtclbuqB7F7Ijd0qRuccSsxYy9w
|
||||||
Binary file not shown.
@@ -0,0 +1,22 @@
|
|||||||
|
[diff]
|
||||||
|
algorithm = histogram
|
||||||
|
[core]
|
||||||
|
logallrefupdates = true
|
||||||
|
quotePath = false
|
||||||
|
commitGraph = true
|
||||||
|
[gc]
|
||||||
|
reflogexpire = 90
|
||||||
|
writeCommitGraph = true
|
||||||
|
[user]
|
||||||
|
email = gitea@fake.local
|
||||||
|
name = Gitea
|
||||||
|
[receive]
|
||||||
|
advertisePushOptions = true
|
||||||
|
procReceiveRefs = refs/for
|
||||||
|
[fetch]
|
||||||
|
writeCommitGraph = true
|
||||||
|
[safe]
|
||||||
|
directory = *
|
||||||
|
[uploadpack]
|
||||||
|
allowfilter = true
|
||||||
|
allowAnySHA1InWant = true
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"storage":"boltdb","index_type":"scorch"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"version":5}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,52 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDv/NTUHlYmh6+h
|
||||||
|
QYWRbI18/1h4tbA2hDaX87BAXgQu0da30DBnPkk113aWUJ2lXo7XzXNVqUAvQ7IU
|
||||||
|
bDclJXO+3QRy41wr+R9o1P1T7bfRTlyeDkjtjbIed4+3xvXBuN2o3Yuj5ZGjHm95
|
||||||
|
ADcFtwvCQ56vZ96lHhqjezDAk+cAslW+EVDLx5+LkhV349Z9Haidh2SVMqp3nwHs
|
||||||
|
QIULrgC5hdiSZSpEMKa6Ps4Sv4sxhla7E0bL939gGMlpiwHCUCXbxu9RLoAjiW8f
|
||||||
|
yO4GuEf1IDZ1YRuNqYoulVimsITmc87ai/hu52wGtGhkkY6ENbRTPN4BRYuAtbyt
|
||||||
|
idOIAcV79wBv2X1u8oqJZp/54eIYciCnUQORbgWvooWTbNV2wZiHsOt+9vIqjS95
|
||||||
|
pvjXMETeUKmiK90Gza9pxJlrOO8uGomBQOdrjfTsntr0a79anYfUDIDQV6mJDUqc
|
||||||
|
XvK5cNUwgLR37/AFLe1onfpDsvhjqFroL0yRvtYz1Ff+mgZjEr5rbqV23O1++Aeg
|
||||||
|
roYfjMSDosgXJLh7nhmYdU6pMiphOmKs0RSMXFq7wQeb3QXjRQjSKIjMF/1qabSW
|
||||||
|
gQWD4YSha3Aq0u7o3ELr/iFRu9Bu+zTTuZRber5F9kOfMA/0Znky3bkT6vPBClvu
|
||||||
|
IKzRufrC9JWSBCT4gA/Gg1nm6pZJFwIDAQABAoICAGEmNnnP9gwO7XgX8BwYl4Y8
|
||||||
|
T/I9iqHnD7qfeX/1Dzhs1cD/VDjXLAfRuz3KUKb7ClQt5TyOEV+QxewiiohNCvf+
|
||||||
|
vKhNhah/ZsmnPw3Us47VbATHv5n6vFo9CD7bGe1cCs8rMDYe3r/ruDCBd8Smfuob
|
||||||
|
OYfEQosRDrOTUP8EYIUVrEQO+mgj3WBAuNQZtWBcuz9Z6cvEAOH/ymV7EODThZOU
|
||||||
|
rUFGFsAX+cZ3WjCYvZ5ExaNhgE1dWYDrR82j6ghhLZI0i/iPHGxGXGe/jSvHOcnv
|
||||||
|
Slxl/SNxuHB3ILYJyyMHSnuKIf2zTTXBnmjny4uVufPgNfbJ0lk+OKz/mFP8c5ac
|
||||||
|
jZA9q6BOs4aPVC+dPxXsXoa60baLMbWP27mDXclx5pQC3Cn+R1ECiJ2zEiwZMN2X
|
||||||
|
v/KVRjbzjjTGh2Ru0D31qMVocVoMNnbUeyqh3sgKPbi096oHVnrS4/fZ3C2aekm5
|
||||||
|
3lkpMAYs4FA4APy18CAxsVKf9StBT2QNczCgwBeGfxF+AssXs8oZ0sdYe1ILv2et
|
||||||
|
ze3bWlTaX7jWsoZZ+UD7HOFjHRyDALupcWgir9/CI1xKPdVRXvoWjitHASiVRPBR
|
||||||
|
5SI7kYvPgRCnDQxUrT+Ae2e8SocrHoTrKe/CgLH4u2KyHNrdlLyV394tLrKoMlCX
|
||||||
|
zH9bNb3fpEIeFIcFV26hAoIBAQD5xUGcrM4nb/jVKEWhSeR+yTpMtk2OdJUFmGor
|
||||||
|
oLzD7uYG8HjPpFmKR0jVS11Qh/ixfjvAUAwZy/x976fOcaqwuVfrv0nDkRF11ZEX
|
||||||
|
zBSx9hbUfA8kK7t+z/Sy22Kcze9V4LodnY6IdhE0g9TIYv4oLVUKLdizPX73RP0A
|
||||||
|
jxwceTUc2dOPoQD3HymoYH3CkDxK+aUbtzwAFqobOzynNY1CD2JtSh1bOHXKR90I
|
||||||
|
57ljuwmwAbK1dfpwwZhn+sBAzpfIPxcnCgZEG42mgvl2+DiZ60QJqQ8+zpIYTcWv
|
||||||
|
utNVUpV6R87BaXzDlBPaNcEdU6nI7iaGwCsq3u3dQfc1JHkZAoIBAQD1+RzgPUf6
|
||||||
|
BWGzxhtBjYADRy9TE1/i9gK5oXoWWY9wll8+GRVgR+/pDNFZspQ5HwFKWvMKGlKD
|
||||||
|
0qwWPZVsuPJOSSyyv8cvuUNTnR/jNjPdqDaVP32vE6NbHfl2cJ7/9CWMjlobzQl2
|
||||||
|
uDHLmvCdiMYS/U4eqChvGG7M6Li6NY/PR+UUeuZhUpLA7HfDtrdRL6IYFdDqYC2H
|
||||||
|
AGkWv4WCwhT8CDaIAo72WmNaufDF88xWko9tVUr9oat5unLJd+w6gjlbCdJWf6E4
|
||||||
|
BHl+pNDe1anKQ8ANnN9Lkkun7zifEkD+L6vn8/3UTPjF9MK9YGPlunKP3Njvzm8Q
|
||||||
|
RexKtPrxJqmvAoIBAArT00FQeGtbPkU3RrV0N5SLcpyKtpf7U853Sfr0L9qqi4w3
|
||||||
|
dnVB4aPN7UlZyATKsCw5lauDjNK9dgebkQGxCb45eqc8lp0Et+YMyQpoDWmdimXR
|
||||||
|
rvJZdvpLV4c9XWwAvWRSpp7MCra9r4dAQ8QgDnZ9aJdVX3R9sPhVJEaW7ZgKZRQI
|
||||||
|
GVS7nQgZcLvc2vbJO+PgKJkn+1DhqqQdkEaLWsFHW3PzZ4xhyTFophtRuEargAMC
|
||||||
|
P9X/9EhZDBtN0nG8wvWqTn2hwJ3JN/3E5b2TixiZC00D6CZH3Ctzi6NPjQPA3bv8
|
||||||
|
Suk1gnQUAjxOYj28N7r/H+ptgDGOkm8qAeZq21kCggEBAODQBbdh6zY10v2XlHPO
|
||||||
|
m3Djj/pzG9F5njYBw29H/hUeKwC7tlDgjwLHJ1S/JkAq+Wf3Rmk2c7JuS8CsGrVb
|
||||||
|
OIOa19Kr+6a/wixa0Lk/Yho2U2UHuZzZ6xUtiULaXkh74hHcTblZJkwuv7xi6YZi
|
||||||
|
av8SK2NTuFkJ0MNR9PykVcNS56pXRdcvvFe+CRyFFHmMeq9eySpeK15XXrVe6O0A
|
||||||
|
7GMKMqUPCZFaPbK/fbO/R0TdAWAhc7/rEqnYYm+HPw6e1UNC788FKdnkJRM+GnWA
|
||||||
|
fYYTdCY8+c29cY6U04B4E5T/BzSiSZ3PmBR9x7uErOlcBrc8V76eQ95wui3xyeW8
|
||||||
|
u5sCggEBAKM+kefuLYmnWvyaYuQVvbXMpJ9s4A+6qS5rF3NfvsgzAHxIXEho5mwV
|
||||||
|
Ezi+9jB5rf0PQqlk9UT4DZthSc9VFw4u39mAC7APunN7GlBuGoA0gt7tGg07sJ+6
|
||||||
|
Uy29mzOlJ5pjipacm1YnIiSmsoe0Du0WR0erZCW8BUOJWKdG7JVjV7ZHSnsdaQ5t
|
||||||
|
jibb+omQHvDgCh0VXfKlviPv0TSIunORfupwtBCUDzUpS/y6i9DySr8L0roB3psA
|
||||||
|
I35r2ZB09fgsYoGXJ8UfXItgmETeywvPwPUtZlajHpuEyohhr5woiSVhV7cj2T0s
|
||||||
|
is98y8FlVA8sX4JejMEgMmJdkkARn8s=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000000
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
=============== Mar 31, 2026 (UTC) ===============
|
||||||
|
19:18:01.281892 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
19:18:01.336666 db@open opening
|
||||||
|
19:18:01.336960 version@stat F·[] S·0B[] Sc·[]
|
||||||
|
19:18:01.378676 db@janitor F·2 G·0
|
||||||
|
19:18:01.378701 db@open done T·41.998026ms
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
|||||||
|
services:
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
container_name: gitea
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
- GITEA__database__DB_TYPE=sqlite3
|
||||||
|
volumes:
|
||||||
|
- /opt/gitea/data:/data
|
||||||
|
ports:
|
||||||
|
- "3001:3000"
|
||||||
|
- "222:22"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backbone:
|
||||||
|
external: true
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
WYZE_EMAIL=acwallace520@gmail.com
|
||||||
|
WYZE_PASSWORD=Alexander!626
|
||||||
|
API_ID=b98f65a0-92b6-4772-baa7-cde4663143f8
|
||||||
|
API_KEY=vhEztGgO1gRNL5utan5Bw1V6Z0TgTyle4EhYPpkmZD5klwBJ2nHQHCcItHUi
|
||||||
|
WATCHTOWER_HTTP_API_TOKEN=SET_THIS_TO_SOME_RANDOM_TEXT
|
||||||
|
SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=Bearer SET_THIS_TO_SOME_RANDOM_TEXT
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
services:
|
||||||
|
homebridge:
|
||||||
|
container_name: homebridge
|
||||||
|
image: homebridge/homebridge:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- HOMEBRIDGE_CONFIG_UI_PORT=8581
|
||||||
|
- ENABLE_AVAHI=1
|
||||||
|
volumes:
|
||||||
|
- homebridge-data:/homebridge
|
||||||
|
|
||||||
|
scrypted:
|
||||||
|
container_name: scrypted
|
||||||
|
image: koush/scrypted:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=SET_THIS_TO_SOME_RANDOM_TEXT_BROHAM
|
||||||
|
- SCRYPTED_WEBHOOK_UPDATE=http://localhost:10444/v1/update
|
||||||
|
- ENABLE_AUDIO=True
|
||||||
|
volumes:
|
||||||
|
- /.scrypted/volume:/server/volume
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.scope=scrypted"
|
||||||
|
|
||||||
|
wyze-bridge:
|
||||||
|
container_name: wyze-bridge
|
||||||
|
image: mrlt8/wyze-bridge:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- WYZE_EMAIL=acwallace520@gmail.com
|
||||||
|
- WYZE_PASSWORD=Alexander!626
|
||||||
|
- API_ID=b98f65a0-92b6-4772-baa7-cde4663143f8
|
||||||
|
- API_KEY=vhEztGgO1gRNL5utan5Bw1V6Z0TgTyle4EhYPpkmZD5klwBJ2nHQHCcItHUi
|
||||||
|
- WB_AUTH=False
|
||||||
|
- ENABLE_AUDIO=True
|
||||||
|
- AUDIO_CODEC=AAC
|
||||||
|
- RTSP_FW=Force
|
||||||
|
|
||||||
|
scrypted-watchtower:
|
||||||
|
container_name: scrypted-watchtower
|
||||||
|
image: containrrr/watchtower
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- WATCHTOWER_SCOPE=scrypted
|
||||||
|
- WATCHTOWER_HTTP_API_PERIODIC_POLLS=true
|
||||||
|
- WATCHTOWER_HTTP_API_TOKEN=SET_THIS_TO_SOME_RANDOM_TEXT_BRO
|
||||||
|
- WATCHTOWER_HTTP_API_UPDATE=true
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
command: --interval 3600 --cleanup --scope scrypted
|
||||||
|
labels:
|
||||||
|
- "com.centurylinklabs.watchtower.scope=scrypted"
|
||||||
|
ports:
|
||||||
|
- "10444:8080"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
homebridge-data:
|
||||||
|
external: true
|
||||||
|
name: homebridge_homebridge
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[global]
|
||||||
|
server_name = "invokesmoke.dev"
|
||||||
|
database_path = "/var/lib/tuwunel/db"
|
||||||
|
port = [6167]
|
||||||
|
address = "0.0.0.0"
|
||||||
|
allow_registration = false
|
||||||
|
allow_federation = true
|
||||||
|
max_request_size = 20_000_000
|
||||||
|
trusted_servers = ["matrix.org"]
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
use-auth-secret
|
||||||
|
static-auth-secret=a0c73a93e9a2c134ac3a6746388853d326a59ec384c628916b64118f77706a84
|
||||||
|
realm=turn.invokesmoke.dev
|
||||||
|
server-name=turn.invokesmoke.dev
|
||||||
|
listening-port=3478
|
||||||
|
tls-listening-port=5349
|
||||||
|
min-port=49152
|
||||||
|
max-port=65535
|
||||||
|
verbose
|
||||||
|
fingerprint
|
||||||
|
no-multicast-peers
|
||||||
|
denied-peer-ip=10.0.0.0-10.255.255.255
|
||||||
|
denied-peer-ip=192.168.0.0-192.168.255.255
|
||||||
|
denied-peer-ip=172.16.0.0-172.31.255.255
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
services:
|
||||||
|
tuwunel:
|
||||||
|
image: jevolk/tuwunel:latest
|
||||||
|
container_name: tuwunel
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TUWUNEL_CONFIG=/etc/tuwunel/tuwunel.toml
|
||||||
|
volumes:
|
||||||
|
- tuwunel-data:/var/lib/tuwunel
|
||||||
|
- ./conduit/conduit.toml:/etc/tuwunel/tuwunel.toml:ro
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
coturn:
|
||||||
|
image: coturn/coturn:latest
|
||||||
|
container_name: coturn
|
||||||
|
restart: unless-stopped
|
||||||
|
command:
|
||||||
|
- "--log-file=stdout"
|
||||||
|
- "--external-ip=$(detect-external-ip)"
|
||||||
|
volumes:
|
||||||
|
- ./coturn/turnserver.conf:/etc/coturn/turnserver.conf:ro
|
||||||
|
network_mode: host
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
tuwunel-data:
|
||||||
|
external: true
|
||||||
|
name: matrix_tuwunel-data
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backbone:
|
||||||
|
external: true
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
services:
|
||||||
|
mealie:
|
||||||
|
container_name: mealie
|
||||||
|
image: ghcr.io/mealie-recipes/mealie:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "9925:9000"
|
||||||
|
environment:
|
||||||
|
BASE_URL: "https://mealie.invokesmoke.dev"
|
||||||
|
volumes:
|
||||||
|
- mealie-data:/app/data
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mealie-data:
|
||||||
|
external: true
|
||||||
|
name: "766bc8605e066d1eba7287428e4e4130442f8a9473d730ed4abfd5fdd47c9076"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backbone:
|
||||||
|
external: true
|
||||||
|
name: backbone
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
services:
|
||||||
|
wg-easy:
|
||||||
|
image: ghcr.io/wg-easy/wg-easy
|
||||||
|
container_name: wireguard
|
||||||
|
environment:
|
||||||
|
- LANG=en
|
||||||
|
- WG_HOST=104.230.231.144
|
||||||
|
- PASSWORD_HASH=$$2a$$12$$BSBRXnlt8Bdcqb25qruo9.6HamIVlsmreo33ja0pHZUEghUnzPCIK
|
||||||
|
- WG_PORT=51820
|
||||||
|
- WG_DEFAULT_DNS=192.168.1.40
|
||||||
|
- WG_ALLOWED_IPS=192.168.1.0/24
|
||||||
|
volumes:
|
||||||
|
- /opt/wireguard/data:/etc/wireguard
|
||||||
|
ports:
|
||||||
|
- "51820:51820/udp"
|
||||||
|
- "41821:51821/tcp"
|
||||||
|
restart: unless-stopped
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.ip_forward=1
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
networks:
|
||||||
|
- backbone
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backbone:
|
||||||
|
external: true
|
||||||
Reference in New Issue
Block a user