commit
bcbddc7e13
29 changed files with 3037 additions and 0 deletions
@ -0,0 +1,4 @@ |
||||
/build |
||||
/cache |
||||
/temp |
||||
|
@ -0,0 +1,4 @@ |
||||
.DS_Store |
||||
/build |
||||
/cache |
||||
/temp |
@ -0,0 +1,5 @@ |
||||
FROM alpine:3.14 |
||||
# Ref: https://openwrt.org/docs/guide-user/additional-software/imagebuilder |
||||
RUN apk --no-cache add build-base bash gawk bzip2 git python2 gettext |
||||
COPY . /build |
||||
WORKDIR /build |
@ -0,0 +1,84 @@ |
||||
OPENWRT_RELEASE = 19.07.7
|
||||
OPENWRT_TARGET = ath79/generic
|
||||
OPENWRT_PROFILE = tplink_tl-wr1043nd-v2
|
||||
export OPENWRT_RELEASE OPENWRT_TARGET OPENWRT_PROFILE |
||||
|
||||
CONFIG = base
|
||||
IDENT = default
|
||||
DOCKER_TAG = git.projectflower.eu/flower/stigma
|
||||
export CONFIG IDENT |
||||
|
||||
TOP = $(shell pwd)
|
||||
CACHE_DIR = ./cache
|
||||
WORK_DIR = ./temp
|
||||
OUT_DIR = ./build
|
||||
export CACHE_DIR WORK_DIR OUT_DIR |
||||
|
||||
OPENWRT_FILES =
|
||||
OPENWRT_PACKAGES =
|
||||
OPENWRT_EXTRA_NAME = flower
|
||||
export OPENWRT_FILES OPENWRT_PACKAGES OPENWRT_EXTRA_NAME |
||||
|
||||
FILES_DIR = $(WORK_DIR)/files/$(OPENWRT_RELEASE)-$(OPENWRT_TARGET)-$(OPENWRT_PROFILE)-$(CONFIG)-$(IDENT)
|
||||
|
||||
|
||||
.PHONY: docker |
||||
docker: |
||||
docker build -t $(DOCKER_TAG) .
|
||||
|
||||
docker.%: docker |
||||
docker run \
|
||||
-v /build/$(CACHE_FOLDER):$(TOP)/$(CACHE_FOLDER) \
|
||||
-v /build/$(OUT_DIR):$(TOP)/$(OUT_DIR) \
|
||||
--rm $(DOCKER_TAG) \
|
||||
$(patsubst docker.%,%,$@) $(MAKEFLAGS)
|
||||
|
||||
include $(wildcard configs/*.mk) |
||||
|
||||
.PHONY: image |
||||
image: $(OUT_DIR)/openwrt-$(OPENWRT_RELEASE)-$(subst /,-,$(OPENWRT_TARGET))-$(CONFIG)-$(IDENT)/ |
||||
|
||||
|
||||
.SECONDARY: |
||||
|
||||
# Vital directories
|
||||
|
||||
$(CACHE_DIR) $(WORK_DIR) $(OUT_DIR): |
||||
mkdir -p $@
|
||||
|
||||
# The imagebuilder archive
|
||||
|
||||
$(CACHE_DIR)/openwrt-imagebuilder-%.tar.xz: $(CACHE_DIR) |
||||
curl -sL https://downloads.openwrt.org/releases/$(OPENWRT_RELEASE)/targets/$(OPENWRT_TARGET)/$(notdir $@) -o $@
|
||||
|
||||
# The extracted imagebuilder
|
||||
|
||||
$(WORK_DIR)/%: $(CACHE_DIR)/%.tar.xz $(WORK_DIR) |
||||
tar -xC $(dir $@) -f $<
|
||||
|
||||
# The main image!
|
||||
|
||||
$(OUT_DIR)/openwrt-%-$(CONFIG)-$(IDENT)/: $(WORK_DIR)/openwrt-imagebuilder-%.$(shell uname -s)-$(shell uname -m) $(OUT_DIR) |
||||
rm -rf $(TOP)/$(FILES_DIR) && mkdir -p $(TOP)/$(FILES_DIR)
|
||||
|
||||
for f in $(OPENWRT_FILES); do \
|
||||
cp -R $(TOP)/$$f/* $(TOP)/$(FILES_DIR); \
|
||||
done
|
||||
|
||||
find "$(TOP)/$(FILES_DIR)" -name '*.env' | while read f; do \
|
||||
envsubst < "$$f" > "$${f%%.env}" && rm "$$f"; \
|
||||
done
|
||||
find "$(TOP)/$(FILES_DIR)" -name '*.append.*' | while read f; do \
|
||||
cat "$$f" >> "$${f%%.append.*}" && rm "$$f"; \
|
||||
done
|
||||
|
||||
umask 022 && make -C $< \
|
||||
image \
|
||||
PROFILE=$(OPENWRT_PROFILE) \
|
||||
PACKAGES="$(OPENWRT_PACKAGES)" \
|
||||
FILES=$(TOP)/$(FILES_DIR) \
|
||||
BIN_DIR=$(TOP)/$(WORK_DIR) \
|
||||
EXTRA_IMAGE_NAME="$(OPENWRT_EXTRA_NAME)" \
|
||||
|
||||
mkdir -p $@
|
||||
cp $(WORK_DIR)/*$(OPENWRT_EXTRA_NAME)*.bin $@
|
@ -0,0 +1,25 @@ |
||||
export ARCADE_ID |
||||
export ARCADE_SLUG |
||||
export ARCADE_NAME |
||||
|
||||
export NETWORK_DHCP_ADDR |
||||
NETWORK_DHCP_MASK = 255.255.255.0
|
||||
export NETWORK_DHCP_MASK |
||||
|
||||
export NETWORK_TEST_CONNECTIVITY |
||||
export NETWORK_TEST_SERVICE |
||||
|
||||
NETWORK_DNS_SERVERS = 9.9.9.9
|
||||
export NETWORK_DNS_SERVERS |
||||
export NETWORK_DNS_SERVER_OVERRIDES |
||||
export NETWORK_DNS_ADDR_OVERRIDES |
||||
|
||||
.PHONY: base |
||||
base: OPENWRT_PACKAGES += luci-ssl |
||||
base: OPENWRT_FILES += configs/base |
||||
base: |
||||
@$(MAKE) \
|
||||
RELEASE=$(RELEASE) TARGET=$(TARGET) PROFILE=$(PROFILE) \
|
||||
CONFIG=$(CONFIG) IDENT=$(IDENT) \
|
||||
OPENWRT_FILES="$(OPENWRT_FILES)" OPENWRT_PACKAGES="$(OPENWRT_PACKAGES)" OPENWRT_EXTRA_NAME=$(OPENWRT_EXTRA_NAME) \
|
||||
image
|
@ -0,0 +1,17 @@ |
||||
|
||||
config system |
||||
option ttylogin '0' |
||||
option log_size '64' |
||||
option urandom_seed '0' |
||||
option zonename 'UTC' |
||||
option hostname '${ARCADE_SLUG}-gateway' |
||||
option log_proto 'udp' |
||||
option conloglevel '8' |
||||
option cronloglevel '5' |
||||
|
||||
config timeserver 'ntp' |
||||
list server '0.openwrt.pool.ntp.org' |
||||
list server '1.openwrt.pool.ntp.org' |
||||
list server '2.openwrt.pool.ntp.org' |
||||
list server '3.openwrt.pool.ntp.org' |
||||
|
@ -0,0 +1,7 @@ |
||||
root:x:0:0:root:/root:/bin/ash |
||||
daemon:*:1:1:daemon:/var:/bin/false |
||||
ftp:*:55:55:ftp:/home/ftp:/bin/false |
||||
network:*:101:101:network:/var:/bin/false |
||||
nobody:*:65534:65534:nobody:/var:/bin/false |
||||
dnsmasq:x:453:453:dnsmasq:/var/run/dnsmasq:/bin/false |
||||
arcadeop:*:100:100:arcade operator:/home/arcadeop:/bin/ash |
@ -0,0 +1,11 @@ |
||||
arcade_id=${ARCADE_ID} |
||||
arcade_slug="${ARCADE_SLUG}" |
||||
arcade_name="${ARCADE_NAME}" |
||||
|
||||
network_dhcp_addr="${NETWORK_DHCP_ADDR}" |
||||
network_dhcp_mask="${NETWORK_DHCP_MASK}" |
||||
network_dns_servers="${NETWORK_DNS_SERVERS}" |
||||
network_dns_server_overrides="${NETWORK_DNS_SERVER_OVERRIDES}" |
||||
network_dns_addr_overrides="${NETWORK_DNS_ADDR_OVERRIDES}" |
||||
network_test_connectivity="${NETWORK_TEST_CONNECTIVITY}" |
||||
network_test_service="${NETWORK_TEST_SERVICE}" |
@ -0,0 +1,7 @@ |
||||
#!/bin/sh |
||||
. /etc/stigma.conf |
||||
uci -q batch <<EOI |
||||
set network.lan.ipaddr=${network_dhcp_addr} |
||||
set network.lan.netmask=${network_dhcp_mask} |
||||
commit network |
||||
EOI |
@ -0,0 +1,27 @@ |
||||
#!/bin/sh |
||||
set -e |
||||
|
||||
. /etc/stigma.conf |
||||
|
||||
if [ -z "$network_dns_servers" ]; then |
||||
dns_servers="$(uci get dhcp.@dnsmasq[0].server || true)" |
||||
else |
||||
dns_servers="$network_dns_servers" |
||||
fi |
||||
uci -q delete dhcp.@dnsmasq[0].server || true |
||||
|
||||
for addr in $network_dns_server_overrides; do |
||||
uci -q add_list "dhcp.@dnsmasq[0].server=/${addr/=/\/}" |
||||
uci -q add_list "dhcp.@dnsmasq[0].rebind_domain=${addr%%=*}" |
||||
done |
||||
|
||||
for addr in $network_dns_addr_overrides; do |
||||
uci -q add_list "dhcp.@dnsmasq[0].address=/${addr/=/\/}" |
||||
uci -q add_list "dhcp.@dnsmasq[0].rebind_domain=${addr%%=*}" |
||||
done |
||||
|
||||
for addr in $dns_servers; do |
||||
uci -q add_list "dhcp.@dnsmasq[0].server=$addr" |
||||
done |
||||
|
||||
uci -q commit dhcp |
@ -0,0 +1,4 @@ |
||||
.PHONY: dev-ar750s |
||||
dev-ar750s: OPENWRT_TARGET = ar71xx/generic |
||||
dev-ar750s: OPENWRT_PROFILE = gl-ar750s |
||||
dev-ar750s: flower |
@ -0,0 +1,4 @@ |
||||
.PHONY: dev-edgerouter |
||||
dev-edgerouter: OPENWRT_TARGET = ramips/mt7621 |
||||
dev-edgerouter: OPENWRT_PROFILE = ubnt-erx |
||||
dev-edgerouter: flower |
@ -0,0 +1,4 @@ |
||||
.PHONY: dev-wr1043 |
||||
dev-wr1043: OPENWRT_TARGET = ath79/generic |
||||
dev-wr1043: OPENWRT_PROFILE = tplink_tl-wr1043nd-v2 |
||||
dev-wr1043: flower |
@ -0,0 +1,7 @@ |
||||
flower: OPENWRT_FILES += configs/flower |
||||
flower: NETWORK_DHCP_ADDR = 10.57.$(ARCADE_ID).1 |
||||
flower: NETWORK_DHCP_MASK = 255.255.255.0 |
||||
flower: NETWORK_DNS_SERVER_OVERRIDES += konami.fun=10.57.0.1 konami.com=10.57.0.1 vpn.projectflower.eu=9.9.9.9 projectflower.eu=10.57.0.1 |
||||
flower: NETWORK_TEST_CONNECTIVITY = 10.57.0.1 |
||||
flower: NETWORK_TEST_SERVICE = https://kailua.projectflower.eu/healthcheck |
||||
flower: openvpn |
@ -0,0 +1,7 @@ |
||||
root:$1$nD9GRZx3$/YjrAE4vGcWCgKR8iJYaE.:18673:0:99999:7::: |
||||
daemon:*:0:0:99999:7::: |
||||
ftp:*:0:0:99999:7::: |
||||
network:*:0:0:99999:7::: |
||||
nobody:*:0:0:99999:7::: |
||||
dnsmasq:x:0:0:99999:7::: |
||||
arcadeop:$1$y1NGWVs/$S3iq5aHdv1QavoL9Lea7B.:18838:0:99999:7::: |
@ -0,0 +1,2 @@ |
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1ziwgGDDl7dTnVhBwCXZ83JPQ1x/eBhoqKOzfsU4Gpl5D/aKXz1370H2IFIk63Mf8uzemV79SbvyX2GAkcgAzcSovyuhkzE+eGiFLrY32vSQqIkLMagPMlaTEymDnqVqRgnAySJ/jSsRD9GlCZwavsRCe25Zgcd2zCT62XwFFD/GluEORuuxZp+J2bsLE1dGKHhjCTdMtGQ53mk5JcWyKEj52h0s+7Hugo2PMADGV0qU1yvPEzD6wriz0CvNUpEDGWSek43/lby4B9Z+wXcCGMaQ4K3weIL7D9Ft2ceFmrNV9VfM1EE5hurdJaNqGl4WRbzk7+CKz32TMT95nbJIb |
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN2t+FnefS21FLxrcPURgU2p9yXKmqGrFGLC9Xm+7lgG |
After Width: | Height: | Size: 361 KiB |
@ -0,0 +1,115 @@ |
||||
<!DOCTYPE html> |
||||
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" class="h-100"> |
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<style> |
||||
.fullsplash-container { |
||||
font-family: 'Cabin', sans-serif; |
||||
color: white; |
||||
} |
||||
|
||||
.lead-title { |
||||
flex: 0 0 10vw; |
||||
font-size: 96px; |
||||
font-weight: bold; |
||||
font-family: 'Cabin', sans-serif; |
||||
} |
||||
.content { |
||||
flex: 1; |
||||
justify-content: center; |
||||
text-shadow: 2px 2px 10px #666; |
||||
} |
||||
.content b { |
||||
text-shadow: 2px 2px 1px #444; |
||||
} |
||||
|
||||
.environment { |
||||
font-family: 'Inconsolata', monospace; |
||||
text-transform: uppercase; |
||||
font-weight: bold; |
||||
color: black; |
||||
opacity: 0.2; |
||||
content: "LOL"; |
||||
font-size: 80px; |
||||
position: fixed; |
||||
bottom: 0; |
||||
right: 0; |
||||
padding-right: 1vw; |
||||
padding-bottom: 30px; |
||||
order: 1; |
||||
} |
||||
.environment::before { |
||||
color: #bbbbbb; |
||||
content: "{"; |
||||
} |
||||
.environment::after{ |
||||
color: #bbbbbb; |
||||
content: "}"; |
||||
} |
||||
</style> |
||||
|
||||
<title>${ARCADE_NAME} - Flower Gateway Router</title> |
||||
<link rel="shortcut icon" href="/favicon.ico"> |
||||
<link rel="stylesheet" href="/static/flower.css" type="text/css; charset=utf-8"> |
||||
</head> |
||||
|
||||
<body class="bg-colorize-prod h-100"> |
||||
<div class="site-wrapper h-100"> |
||||
<div class="fixed-top"> |
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light" role="navigation"> |
||||
<div class="container"> |
||||
<a class="navbar-brand" href="/"> |
||||
<img class="d-inline-block align-top" src="/static/logo_navbar.png" alt="Flower"/> |
||||
</a> |
||||
<div class="collapse navbar-collapse" id="navbarNaviMenu"> |
||||
<ul class="navbar-nav mr-auto"></ul> |
||||
<div class="navbar-text"> |
||||
<div class="btn-group btn-group-sm"> |
||||
<a href="/cgi-bin/luci" class="btn btn-success text-white"><span class="fa fa-fw fa-sign-in"></span> Settings</a> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</nav> |
||||
</div> |
||||
<div class="site-wrapper-content h-100 container-fluid"> |
||||
<div class="fullsplash-container row h-100 align-items-center justify-content-center"> |
||||
<div class="p-7 text-right"> |
||||
<div class="lead-title">Stigma</div> |
||||
</div> |
||||
<div class="p-5"> |
||||
<h3 class="project"><i>The ultimate modular router firmware</i>. Since 2021.</h3> |
||||
<h5 class="credit">From your friends at <a href="https://projectflower.eu">Team Flower</a> and <a href="https://openwrt.org" rel="external">OpenWrt</a>.</h5> |
||||
|
||||
<div class="card border-primary"> |
||||
<ul class="list-group list-group-flush text-light"> |
||||
<li class="list-group-item text-right bg-success" id="healthcheck"><i class="fa fa-check-circle"></i> Everything looks fine!</li> |
||||
</ul> |
||||
<div class="card-body"> |
||||
<p class="card-text text-dark"> |
||||
<i class="fa fa-home" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Arcade Information"></i> |
||||
<strong>${ARCADE_NAME}</strong> (#${ARCADE_ID}) |
||||
<br /> |
||||
<i class="fa fa-info-circle" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Firmware Information"></i> |
||||
OpenWrt ${OPENWRT_RELEASE} (${OPENWRT_TARGET}/${OPENWRT_PROFILE}) |
||||
<br /> |
||||
<small> |
||||
<i class="fa fa-link" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Service Connection URL (for games)"></i> <b>http://kailua.projectflower.eu/game</b> |
||||
</small> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div class="footer"> |
||||
<span style="cursor: help" data-toggle="popover" data-placement="top" data-trigger="hover" data-html="true" data-delay="500" title="<span class='fa fa-fw fa-chevron-right'></span><b>Sakura</b>"> |
||||
<span class='fa fa-fw fa-heart'></span> Team Flower + OpenWrt Project 2021 |
||||
</span> |
||||
| |
||||
<a href="mailto:bugs@projectflower.eu"><span class="fa fa-fw fa-bug" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Report a Bug"></span></a> |
||||
</div> |
||||
</div> |
||||
</body> |
||||
</html> |
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,4 @@ |
||||
.PHONY: openvpn |
||||
openvpn: OPENWRT_PACKAGES += openvpn-mbedtls luci-app-openvpn |
||||
openvpn: OPENWRT_FILES += configs/openvpn |
||||
openvpn: base |
@ -0,0 +1,4 @@ |
||||
|
||||
config openvpn 'Flower' |
||||
option config '/etc/openvpn/Flower.ovpn' |
||||
option enabled '1' |
@ -0,0 +1,7 @@ |
||||
#!/bin/sh |
||||
uci -q batch <<EOI |
||||
set network.openvpn=interface |
||||
set network.openvpn.proto=none |
||||
set network.openvpn.ifname=ovpn |
||||
commit network |
||||
EOI |
@ -0,0 +1,5 @@ |
||||
#!/bin/sh |
||||
uci -q batch <<EOI |
||||
add_list firewall.@zone[0].network=openvpn |
||||
commit firewall |
||||
EOI |
Loading…
Reference in new issue