Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ffbs/ffbs-website
  • darkbit/ffbs-website
2 results
Show changes
Commits on Source (264)
Showing
with 187 additions and 2071 deletions
*_bak
*DS_Store
# ignoring from *.template generated files
anleitung-backbone.html
anleitung-business.html
anleitung-starter.html
auswahl.html
eintragen.html
faq.html
impressum.html
index.html
irc.html
karte.html
kontakt.html
plot.html
willkommen.html
*_bak
*DS_Store
build:
stage: build
image: python:3.9
tags:
- docker
script:
- cd flamingo
- echo $CI_COMMIT_REF_SLUG > REF_SLUG
- make html
artifacts:
paths:
- flamingo/output
- contact
expire_in: 1 week
deployment:
stage: deploy
tags:
- ffbs-deploy-frido
only:
refs:
- master
- /^testbed/i
variables:
- $CI_PROJECT_PATH == "ffbs/ffbs-website"
script:
- rm -r /var/www/website/$CI_COMMIT_REF_SLUG/*
- cp -r flamingo/output /var/www/website/$CI_COMMIT_REF_SLUG/htdocs
- cp -r contact /var/www/website/$CI_COMMIT_REF_SLUG/contact
- chmod go+r -R /var/www/website/$CI_COMMIT_REF_SLUG/*
This website is licensed unter CC0:
https://creativecommons.org/publicdomain/zero/1.0/deed.de
By contributing to this repository you agree to license your
work the same license.
......@@ -5,8 +5,14 @@ Die Website des Freifunk Braunschweig
Alle Seiten werden statisch generiert. Die Templates werden mit Mustache gebaut, das entsprechende Tool zum
Generieren der HTML Dateien findet sich hier: https://github.com/tests-always-included/mo
Um das Generieren einfach zu machen ist ``mo`` aber auch in diesem Repo abgelegt.
Der Pfad in `generate.sh` muss entsprechend angepasst werden.
Falls eine andere als die lokale ``mo``-Version verwendet werden soll muss der Pfad in ``generate.sh`` entsprechend
angepasst werden.
Um die Seite zu generieren einfach ``./generate.sh`` im root des Projektes ausführen.
Zum Ansehen wird ein lokaler HTTP-Server benötigt. z.B. Python bringt sowas mit: ``python3 -m http.server``.
Folgende Konfiguration liegt im nginx vor, diese Seiten werden von einem anderen Server bearbeitet:
......
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
hier anleitung schreiben
</div>
{{footer}}
</body>
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
<div class="page-header">
<h1>TP-Link WDR4300</h1>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>
Du möchtest viele Clients bedienen, betreibst ein Cafe, eine Bar oder ähnliches? Es gibt in deiner Umgebung sehr viele WLAN Netze?<br>
Dann kommst du mit dem Einsteiger Modell für Freifunk Braunschweig schnell an technische Grenzen. Hier bietet es sich an einen größeren Router für Freifunk zu nutzten. Dieser kann zum einen mehr Clients bedienen aber auch auf 2 verschiedenen Frequenzen funken. Zum einen im viel genutzten 2,4GHz Band aber auch im noch wenig genutzten und größeren 5GHz Band. <br>
Hier eignen sich die Modelle TP-Link WDR3500, WDR3600 oder WDR4300 am besten.<br>
Diese Anleitung ist für das Modell TP-Link WDR4300. Die Einrichtung der anderen Geräte unterscheidet sich jedoch nicht hiervon. <br>
Um diesen Router für Freifunk zu verwenden musst ihn erst mit der Freifunk <a href="https://firmware.freifunk-bs.de">Firmware</a> versehen. Wähle dazu &quot;Stabile Version&quot; und suche links nach &quot;tp-link-tl-wdr4300-nd&quot; bzw. deinm Router Modell</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/firmware.jpg" alt="firmware.freifunk-bs.de">
</div>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/fw4300.png" alt="tp-link-tl-wdr4300">
</div>
<p>Hier musst du nun die zu deinem Router passende Version auswählen und herunter laden. Die Version deines Routers findest du auf der Unterseite deines Routers.</p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/version4300.jpg" height="271" alt="Version">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<p>Starte nun deinen Router und verbinde ihn mit deinem PC. Unter <a href="http://192.168.0.1">192.168.0.1</a> kannst du dich auf deinem Router einloggen (Benutzername: admin Passwort: admin). Hier wählst du links unter &quot;System Tools&quot; und dann &quot;Firmware Upgrade&quot; aus.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/sysupgrade.png" width="182" height="292" alt="TP-Link System Upgrade">
</div>
<p>Jetzt nur noch die Firmwaredatei auswählen und das Upgrade starten.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/upgrade4300.png" width="634" height="203" alt="Upgrade Button">
</div>
<p>Dein Router installiert nun die Freifunk Firmware und startet danach automatisch neu.<br>
Beim ersten Start mit der Freifunk Firmware lädt dein Router einen Konfigurationsmodus. Dein Router ist nun wieder unter <a href="http://192.168.1.1">192.168.1.1</a> zu erreichen.<br>
In der Weboberfläche kannst du deinem Freifunk Router einen Namen geben.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffname.png" width="873" height="386" alt="LuCi Knotenname">
</div>
<p>Wenn du deine Internetverbindung per Freifunk teilen möchtest, muss du hier einen Haken setzen. Du kannst auch festlegen wieviel Bandbreit für Freifunk zur Verfügung steht.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffshare.png" width="873" height="448" alt="LuCi Share">
</div>
<p>Wenn dein Freifunk Router auf der Karte erscheinen soll. Musst du hier deine <a href="http://gpso.de/maps/">Koordinaten</a> eintragen.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffkoord.png" width="873" height="368" alt="LuCi Map">
</div>
<p>Abschließen trägts du noch eine Kontakt E-Mail Adresse ein und klickst auf &quot;Speichern &amp; Neustarten&quot;.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffmail.png" width="873" height="322" alt="LuCi Mail">
</div>
<p>Verbinde nun den blauen WAN Port des Routers mit deinem Internetrouter und genieße braunschweig.freifunk.net<br>
Nun siehst du zum einen das &quot;braunschweig.freifunk.net&quot; Netz aber auch das &quot;braunschweig.freifunk.net (5GHz)&quot; Netz.</p>
<div class="col-md-5 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/wan4300.jpg" alt="WAN">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<div class="col-md-5 panel">
<img class="img-responsive center-block" src="assets/images/ssid5ghz.png" alt="FF ssid">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>
Am besten stellst du deinen Freifunk Router nun noch so auf, dass er möglichst gut von anderen erreicht werden kann. </p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/fenster.jpg" alt="FFfenster">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
</div>
</div>
</div>
{{footer}}
</body>
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<div class="container">
<div class="page-header">
<h1>TP-Link WR841N(D)</h1>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>Du hast dir selber einen Router gekauft und möchest bei Freifunk mitmachen. <br>
Die einfachst Variante ist es einen TP-Link TL-WR841N oder TL-WR841ND.<br>
Wenn du noch keinen Router hast kannst du diesen z.B. bei Amazon beziehen.<br>
Der TL-WR841N hat 2 feste Antennen. Beim Modell TL-WR841ND sind die Antennen abschraubbar und es lassen sich somit z.B. Outdoor Antennen montieren.<br>
Um diesen Router für Freifunk zu verwenden musst ihn erst mit der Freifunk <a href="https://firmware.freifunk-bs.de">Firmware</a> versehen. Wähle dazu &quot;Stabile Version&quot; und suche links nach &quot;tp-link-tl-wr841n-nd&quot;</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/firmware.jpg" alt="firmware.freifunk-bs.de">
</div>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/fw841.jpg" alt="tp-link-tl-wr841n-nd">
</div>
<p>Hier musst du nun die zu deinem Router passende Version auswählen und herunter laden. Die Version deines Routers findest du auf der Unterseite deines Routers.</p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/version.jpg" height="271" alt="Version">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<p>Starte nun deinen Router und verbinde ihn mit deinem PC. Unter <a href="http://192.168.0.1">192.168.0.1</a> kannst du dich auf deinem Router einloggen (Benutzername: admin Passwort: admin). Hier wählst du links unter &quot;System Tools&quot; und dann &quot;Firmware Upgrade&quot; aus.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/sysupgrade.png" width="182" height="292" alt="TP-Link System Upgrade">
</div>
<p>Jetzt nur noch die Firmwaredatei auswählen und das Upgrade starten.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/upgrade.png" width="634" height="203" alt="Upgrade Button">
</div>
<p>Dein Router installiert nun die Freifunk Firmware und startet danach automatisch neu.<br>
Beim ersten Start mit der Freifunk Firmware lädt dein Router einen Konfigurationsmodus. Dein Router ist nun wieder unter <a href="http://192.168.1.1">192.168.1.1</a> zu erreichen.<br>
In der Weboberfläche kannst du deinem Freifunk Router einen Namen geben.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffname.png" width="873" height="386" alt="LuCi Knotenname">
</div>
<p>Wenn du deine Internetverbindung per Freifunk teilen möchtest, muss du hier einen Haken setzen. Du kannst auch festlegen wieviel Bandbreit für Freifunk zur Verfügung steht.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffshare.png" width="873" height="448" alt="LuCi Share">
</div>
<p>Wenn dein Freifunk Router auf der Karte erscheinen soll. Musst du hier deine <a href="http://gpso.de/maps/">Koordinaten</a> eintragen.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffkoord.png" width="873" height="368" alt="LuCi Map">
</div>
<p>Abschließen trägts du noch eine Kontakt E-Mail Adresse ein und klickst auf &quot;Speichern &amp; Neustarten&quot;.</p>
<div class="col-md-12 panel">
<img class="img-responsive center-block" src="assets/images/ffmail.png" width="873" height="322" alt="LuCi Mail">
</div>
<p>Verbinde nun den blauen WAN Port des Routers mit deinem Internetrouter und genieße braunschweig.freifunk.net</p>
<div class="col-md-5 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/wan.jpg" alt="WAN">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
<div class="col-md-5 panel">
<img class="img-responsive center-block" src="assets/images/ssid.jpg" alt="FF ssid">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-sm-12">
<p>Am besten stellst du deinen Freifunk Router nun noch so auf, dass er möglichst gut von anderen erreicht werden kann. </p>
<div class="col-md-12 panel licensed-image">
<img class="img-responsive center-block" src="assets/images/fenster.jpg" alt="FFfenster">
<div class="license">
<p class="license-inner">CC-BY-SA 3.0 fototeddy</p>
</div>
</div>
</div>
</div>
</div>
{{footer}}
</body>
assets/images/ffbs_anschliessen.png

619 KiB

assets/images/ffbs_router.png

651 KiB

<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<!-- Navigation -->
<div class="container">
<div class="page-header">
<h1>Alternativen
<small>3 Arten des Mitmachens</small>
</h1>
</div>
<div class="container">
<div class="row pricing-table">
<div class="col-xs-12 col-md-4">
<div class="panel panel-info">
<div class="panel-heading">
<h3 class="panel-title">
Starter Package
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
TP-Link WR841N(D)
</h1>
<small><em>für wenig Clients</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Wireless Speed ca. 18 MBit/s
</td>
</tr>
<tr>
<td>
Frequenz 2,4GHz
</td>
</tr>
<tr class="active">
<td>
Antennen 2
</td>
</tr>
</table>
</div>
<div class="panel-footer">
<a href="/anleitung-starter.html" class="btn btn-info btn-sm" role="button">Mitmachen</a>
</div>
</div>
</div>
<div class="col-xs-12 col-md-4">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">
Business Package
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
TP-Link WDR4300
</h1>
<small><em>Für optimale Abdeckung</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Wireless Speed ca. <b>40</b> MBit/s
</td>
</tr>
<tr>
<td>
Frequenz 2,4GHz <b>und 5,0GHz</b>
</td>
</tr>
<tr class="active">
<td>
Antennen <b>3</b>
</td>
</tr>
</table>
</div>
<div class="panel-footer">
<a href="/anleitung-business.html" class="btn btn-success btn-sm" role="button">Mitmachen</a>
</div>
</div>
</div>
<div class="col-xs-12 col-md-4">
<!--
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Backbone Package
</h3>
</div>
<div class="panel-body">
<div class="the-price">
<h1>
Ubiquiti PowerBeam
</h1>
<small><em>Für die Verbindung mit anderen Punkten</em></small>
</div>
<table class="table">
<tr class="active">
<td>
Wireless Speed ca. <b>450</b> MBit/s
</td>
</tr>
<tr>
<td>
Frequenz <b>5,0GHz</b>
</td>
</tr>
<tr class="active">
<td>
Range <b>25+ km</b>
</td>
</tr>
<tr>
<td>
Hoch verschlüsselte Verbindung
</td>
</tr>
<tr class="active">
<td>
Gigabit Lan
</td>
</tr>
</table>
</div>
<div class="panel-footer">
<a href="/anleitung-backbone.html" class="btn btn-primary btn-sm" role="button">Backbone Aufbauen</a>
</div>
</div>
-->
</div>
</div>
</div>
</div>
{{footer}}
</body>
aiohttp
#!/usr/bin/env python3
# coding=utf-8
from aiohttp import web
import asyncio
import re
import smtplib
import uuid
import datetime
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import logging
logging.basicConfig(level=logging.INFO)
CONTACT_EMAIL_TO = 'kontakt@freifunk-bs.de'
EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)"
template = """
<html>
<head>
<meta charset="utf-8">
</head>
<body>
%s<br>
<a href="/kontakt.html">zurück</a>
</body>
</html>
"""
async def handle(req):
logging.debug('Got a new request:')
form = await req.post()
logging.debug(f'Form data: {form}')
try:
email = form['email']
if not re.match(EMAIL_REGEX, email):
raise ValueError()
message = form['message']
captcha = form['captcha']
captcha = captcha.replace("'", "")
captcha = captcha.replace('"', "")
captcha = captcha.strip()
today = str(datetime.datetime.now().day)
if today == captcha:
logging.info('CAPTCHA successfull')
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = "kontakt@freifunk-bs.de"
msg['To'] = CONTACT_EMAIL_TO
msg['Subject'] = 'Kontaktanfrage von %s' % email
msg['Reply-To'] = ','.join([email,CONTACT_EMAIL_TO])
ruuid = str(uuid.uuid4()) #get a random uuid
msg['Message-ID'] = '<'+ruuid+'@freifunk-bs.de>'
p = Popen(["/usr/sbin/sendmail", "-t", "-oi", "-FKontaktformular"], stdin=PIPE)
p.communicate(msg.as_string().encode())
logging.info('Mail sent')
return web.Response(body = template % "Ihre Nachricht wurde entgegengenommen", content_type='text/html')
else:
logging.info('CAPTCHA NOT successfull')
return web.Response(body = template % "Der Spamschutz wurde nicht erfolgreich ausgefüllt. Bitte versuchen Sie es erneut.", content_type='text/html')
except Exception as e:
logging.exception('Request failed! Exception:')
return web.Response(body = template % "Die Anfrage ist ungültig", content_type='text/html')
app = web.Application()
app.add_routes([web.post('/contact', handle)])
if __name__ == '__main__':
web.run_app(app, host='0.0.0.0', port=7392)
# vim: expandtab:shiftwidth=4:softtabstop=4
[Unit]
Description=Provide our contact form backend
[Service]
Type=simple
Environment="PYTHONUNBUFFERED=1"
ExecStart=/var/www/website/venv/bin/python3 /var/www/website/master/contact/contact.py
Restart=always
RestartSec=60
StartLimitInterval=0
User=gitlab-runner
[Install]
WantedBy=multi-user.target
~
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE html>
<html lang="de">
{{head}}
<body>
{{nav}}
<!-- Navigation -->
<div class="container">
<div class="page-header">
<h1>Router eintragen</h1>
</div>
<div class="row">
<div class="col-lg-6">
<div id="alert" class="alert" style="display:none"></div>
<p>Du bist der <a href="https://wiki.freifunk-bs.de/index.php?title=Einrichtung">Anleitung</a> gefolgt und
hast einen Schlüssel von deinem Router bekommen? Dann trage hier deinen Schlüssel ein:</p>
<form class="form" id="keyform" method="POST" action="/newkey">
<fieldset>
<textarea id="key" name="key" cols="50" rows="2" class="span6"></textarea><br><br>
<input type="submit" value="absenden" class="btn btn-primary pull-right">
</fieldset>
</form>
</div>
<div class="col-lg-6">
<p>Die Schlüsselinformationen sollten so eingetragen werden:</p>
<!-- totally a random key... -->
<pre># Beispiel # beispiel@freifunk-bs.de<br>70e9157d98c9780c27ea17e95e27885997cf321225050f397f0fa82ac1733639</pre>
</div>
</div>
</div>
{{footer}}
<script type="text/javascript">
$(function () {
$('#keyform').submit(function () {
$.post('/newkey', {'key':$('#key').val()}, function (ans) {
$('#alert').hide(500, function() {
if (ans.success) {
$('#alert').removeClass('alert-danger').addClass('alert-success').text(ans.message)
} else {
$('#alert').removeClass('alert-success').addClass('alert-danger').text(ans.message)
}
$('#alert').show(500)
});
}, 'json')
return false
});
});
</script>
</body>
output/
env/
PYTHON=python3
PYTHON_VENV=env
PROJECT_ROOT=.
WEBSERVER_PORT=8080
WEBSERVER_HOST=0.0.0.0
FLAMINGO_OUTPUT=output
FLAMINGO_ARGS=-s settings.py
FLAMINGO_SERVER_ARGS=$(FLAMINGO_ARGS) --port=$(WEBSERVER_PORT) --host=$(WEBSERVER_HOST)
all: server
# setup / clean ###############################################################
$(PYTHON_VENV)/.created.deploy:
rm -rf $(PYTHON_VENV) && \
$(PYTHON) -m venv $(PYTHON_VENV) && \
. $(PYTHON_VENV)/bin/activate && \
pip install --upgrade -r ./REQUIREMENTS-deploy.txt > $(PYTHON_VENV)/build.log 2>&1 && \
(date > $(PYTHON_VENV)/.created.deploy) || \
(echo "\e[31m"; cat $(PYTHON_VENV)/build.log; echo "\e[0m"; exit 1)
deployenv: $(PYTHON_VENV)/.created.deploy
$(PYTHON_VENV)/.created.full:
. $(PYTHON_VENV)/bin/activate && \
pip install --upgrade -r ./REQUIREMENTS-full.txt > $(PYTHON_VENV)/build.log 2>&1 && \
(date > $(PYTHON_VENV)/.created.full) || \
(echo "\e[31m"; cat $(PYTHON_VENV)/build.log; echo "\e[0m"; exit 1)
env: deployenv $(PYTHON_VENV)/.created.full
clean:
rm -rf $(FLAMINGO_OUTPUT)
distclean:
rm -rf $(PYTHON_VENV)
# build #######################################################################
html: deployenv
. $(PYTHON_VENV)/bin/activate && \
flamingo build $(FLAMINGO_ARGS)
server: env
. $(PYTHON_VENV)/bin/activate && \
flamingo server $(FLAMINGO_SERVER_ARGS)
shell: env
. $(PYTHON_VENV)/bin/activate && \
flamingo shell $(FLAMINGO_ARGS)