Add Mautrix-Whatsapp and Website

This commit is contained in:
Mathias Teier 2021-01-31 20:52:24 +01:00
parent 6844338b46
commit 9658e86f41
No known key found for this signature in database
GPG Key ID: AF77EC46DA9525FE
21 changed files with 458 additions and 41 deletions

View File

@ -8,7 +8,7 @@ services:
- /var/signald:/signald
networks:
- matrix_net
- postgrs_net
- postgres_net
signald:
image: docker.io/finn/signald:latest
restart: unless-stopped

View File

@ -5,7 +5,7 @@
- name: Check mautrix-signal directory
stat:
path: /dc/mautrix-signal
register: mautrix-signal_dc_dir_stat
register: mautrixsignal_dc_dir_stat
- name: Create mautrix-signal dc directory
file:
@ -14,7 +14,7 @@
mode: 0755
group: root
owner: root
when: mautrix-signal_dc_dir_stat.islnk is not defined
when: mautrixsignal_dc_dir_stat.islnk is not defined
- name: Copy compose file
copy:

View File

@ -2,5 +2,5 @@
- hosts: teier.eu
gather_facts: no
tasks:
- name: Stop Mariadb
shell: "cd /dc/mariadb && docker-compose stop"
- name: Stop Mautrix Signal
shell: "cd /dc/mautrix-signal && docker-compose stop"

View File

@ -2,5 +2,5 @@
- hosts: teier.eu
gather_facts: no
tasks:
- name: Teardown mariadb
shell: "cd /dc/mariadb && docker-compose down"
- name: Teardown Mautrix Signal
shell: "cd /dc/mautrix-signal && docker-compose down"

View File

@ -0,0 +1,15 @@
version: '2.4'
services:
mautrix-whatsapp:
image: dock.mau.dev/tulir/mautrix-whatsapp:latest
restart: unless-stopped
volumes:
- /var/mautrix-whatsapp:/data
networks:
- matrix_net
networks:
matrix_net:
name: matrix_net
driver: bridge

View File

@ -0,0 +1,25 @@
---
- hosts: teier.eu
gather_facts: no
tasks:
- name: Check mautrix-whatsapp directory
stat:
path: /dc/mautrix-whatsapp
register: mautrixwhatsapp_dc_dir_stat
- name: Create mautrix-whatsapp dc directory
file:
path: /dc/mautrix-whatsapp
state: directory
mode: 0755
group: root
owner: root
when: mautrixwhatsapp_dc_dir_stat.islnk is not defined
- name: Copy compose file
copy:
src: docker-compose.yml
dest: /dc/mautrix-whatsapp
- name: Start mautrix-whatsapp
shell: "cd /dc/mautrix-whatsapp && docker-compose up -d"

View File

@ -0,0 +1,6 @@
---
- hosts: teier.eu
gather_facts: no
tasks:
- name: Stop mautrix-whatsapp
shell: "cd /dc/mautrix-whatsapp && docker-compose stop"

View File

@ -0,0 +1,6 @@
---
- hosts: teier.eu
gather_facts: no
tasks:
- name: Teardown mautrix-whatsapp
shell: "cd /dc/mautrix-whatsapp && docker-compose down"

View File

@ -5,7 +5,7 @@ services:
environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_HOST: mariadb
POSTGRES_HOST: postgres
POSTGRES_PASSWORD: ${POSTGRES_DB_PASSWORD}
TRUSTED_PROXIES: "cloud.teier.eu 138.201.74.231 172.0.0.1/8"
APACHE_DISABLE_REWRITE_IP: "1"
@ -33,6 +33,6 @@ networks:
nextcloud_net:
name: "nextcloud_net"
driver: bridge
mariadb_net:
postgres_net:
name: "postgres_net"
external: true

View File

@ -2,15 +2,19 @@
- hosts: teier.eu
gather_facts: no
tasks:
- name: Install psycopg2
shell: pip install psycopg2-binary
- name: Create database for nextcloud
community.postgresql.postgresql_db:
login_host: 127.0.0.1
login_user: postgres
login_password: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
name: nextcloud
state: present
- name: Create database user for nextcloud
community.postgresql.postgresql_user::
community.postgresql.postgresql_user:
login_host: 127.0.0.1
login_user: postgres
login_password: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
name: nextcloud

10
nextcloud/update.yml Normal file
View File

@ -0,0 +1,10 @@
---
- hosts: teier.eu
gather_facts: no
tasks:
- name: Teardown nextcloud
shell: "cd /dc/nextcloud && docker-compose down"
- name: Update nextcloud
shell: "cd /dc/nextcloud && docker-compose pull"
- name: Start nextcloud
shell: "cd /dc/nextcloud && docker-compose up -d"

View File

@ -8,26 +8,14 @@ server {
listen 443 ssl http2;
server_name teier.eu www.teier.eu;
root /var/www/html/website;
index index.html;
ssl on;
ssl_certificate /etc/letsencrypt/live/teier.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/teier.eu/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_pass_header Authorization;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_request_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_ssl_session_reuse off;
try_files $uri $uri/ =404;
}
}

View File

@ -2,15 +2,19 @@
- hosts: teier.eu
gather_facts: no
tasks:
- name: Install psycopg2
shell: pip install psycopg2-binary
- name: Create database for Nummus
community.postgresql.postgresql_db
login_user: root
community.postgresql.postgresql_db:
login_host: 127.0.0.1
login_user: postgres
login_password: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
name: nummus
state: present
- name: Create database user for Nummus
community.postgresql.postgresql_user:
login_host: 127.0.0.1
login_user: postgres
login_password: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
name: "nummus"

View File

@ -12,6 +12,6 @@ services:
ports:
- 5432:5432
networks:
mariadb_net:
postgres_net:
name: postgres_net
driver: bridge

View File

@ -7,7 +7,7 @@
path: /dc/postgres
register: postgres_dc_dir_stat
- name: Create mariadb dc directory
- name: Create postgres dc directory
file:
path: /dc/postgres
state: directory
@ -22,6 +22,6 @@
dest: /dc/postgres
- name: Start postgres
shell: "cd /dc/mariadb && docker-compose up -d"
shell: "cd /dc/postgres && docker-compose up -d"
environment:
POSTGRES_PASSWORD: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"

View File

@ -1,7 +1,7 @@
version: '2.4'
services:
synapse:
image: matrixdotorg/synapse:latest
image: matrixdotorg/synapse:v1.26.0-deb
restart: always
healthcheck:
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
@ -9,17 +9,22 @@ services:
timeout: 10s
retries: 3
ports:
- 8008:8008
- 8008:8008
environment:
SYNAPSE_SERVER_NAME: matrix.teier.eu
volumes:
- /var/synapse:/data
- /var/mautrix-telegram:/mautrix-telegram
network:
- matrix_net
- /var/synapse:/data
- /var/mautrix-telegram:/mautrix-telegram
- /var/mautrix-signal:/mautrix-signal
- /var/mautrix-whatsapp:/mautrix-whatsapp
networks:
- matrix_net
- postgres_net
networks:
matrix_net:
name: matrix_net
driver: bridge
matrix_net:
name: matrix_net
driver: bridge
postgres_net:
name: postgres_net
external: true

View File

@ -0,0 +1,98 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Ing. Mathias Teier</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="reset-fonts-grids.css" media="all" />
<link rel="stylesheet" type="text/css" href="resume.css" media="all" />
</head>
<body>
<div id="doc2" class="yui-t7">
<div id="inner">
<div id="hd">
<div class="yui-gc">
<a href="index.html">
<div class="yui-u first">
<h1>Ing. Mathias Teier</h1>
<h2>Software Engineer and Student</h2>
</div>
</a>
<div class="yui-u">
<div class="contact-info">
<h3><a href="mailto:mathias.teier@cloudflight.io">mathias.teier@cloudflight.io</a></h3>
<h3>+43660/2622472</h3>
</div><!--// .contact-info -->
</div>
</div><!--// .yui-gc -->
</div><!--// hd -->
<h3>
Impressum & Data Protection Declaration
</h3>
<h4>as I'm forced by Austrian and EU regulators and bureaucrats</h4>
<p>
Informationspflicht laut §5 E-Commerce Gesetz, §14 Unternehmensgesetzbuch, §63 Gewerbeordnung und Offenlegungspflicht laut §25 Mediengesetz.
<br/><br/>
Mathias Teier<br/>
Baierdorf 33,<br/>
3720 Baierdorf,<br/>
Österreich<br/>
Tel.: +43660/2622472<br/>
E-Mail: teier@kagent.at<br/>
<br/><br/>
<b>EU-Streitschlichtung</b>
<br/><br/>
Angaben zur Online-Streitbeilegung: Verbraucher haben die Möglichkeit, Beschwerden an die OnlineStreitbeilegungsplattform der EU zu richten: https://ec.europa.eu/consumers/odr/main/index.cfm?event=main.home2.show&lng=DE. Sie können allfällige Beschwerde auch an die oben angegebene E-Mail-Adresse richten.
Haftung für Inhalte dieser Webseite
<br/><br/>
Wir entwickeln die Inhalte dieser Webseite ständig weiter und bemühen uns korrekte und aktuelle Informationen bereitzustellen. Leider können wir keine Haftung für die Korrektheit aller Inhalte auf dieser Webseite übernehmen, speziell für jene die seitens Dritter bereitgestellt wird. Sollten Ihnen problematische oder rechtswidrige Inhalte auffallen, bitte wir Sie uns umgehend zu kontaktieren, Sie finden die Kontaktdaten im Impressum.
Haftung für Links auf dieser Webseite
<br/><br/>
Unsere Webseite enthält Links zu anderen Webseiten für deren Inhalt wir nicht verantwortlich sind. Wenn Ihnen rechtswidrige Links auf unserer Webseite auffallen, bitte wir Sie uns zu kontaktieren, Sie finden die Kontaktdaten im Impressum.
Urheberrechtshinweis
<br/><br/>
Alle Inhalte dieser Webseite (Bilder, Fotos, Texte, Videos) unterliegen dem Urheberrecht. Falls notwendig, werden wir die unerlaubte Nutzung von Teilen der Inhalte unserer Seite rechtlich verfolgen.
<br/><br/>
<b>Datenschutzerklärung</b>
<br/><br/>
Wir haben diese Datenschutzerklärung (Fassung 19.01.2021-221139960) verfasst, um Ihnen gemäß der Vorgaben der Datenschutz-Grundverordnung (EU) 2016/679 zu erklären, welche Informationen wir sammeln, wie wir Daten verwenden und welche Entscheidungsmöglichkeiten Sie als Besucher dieser Webseite haben.
<br/>
Diese Webseite speichert keine Cookies und speichert keine Daten abgesehen von temporären Zugriffs-Logs des Web-Servers. Diese Logs werden regelmäßig geleert.
<br />
Ihnen stehen laut den Bestimmungen der DSGVO und des österreichischen Datenschutzgesetzes (DSG) grundsätzlich die folgende Rechte zu:
<br>
<ul>
<li>Recht auf Berichtigung (Artikel 16 DSGVO)</li>
<li>Recht auf Löschung („Recht auf Vergessenwerden“) (Artikel 17 DSGVO)</li>
<li>Recht auf Einschränkung der Verarbeitung (Artikel 18 DSGVO)</li>
<li>Recht auf Benachrichtigung Mitteilungspflicht im Zusammenhang mit der Berichtigung oder Löschung personenbezogener Daten oder der Einschränkung der Verarbeitung (Artikel 19 DSGVO)</li>
<li>Recht auf Datenübertragbarkeit (Artikel 20 DSGVO)</li>
<li>Widerspruchsrecht (Artikel 21 DSGVO)</li>
<li>Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung — einschließlich Profiling — beruhenden Entscheidung unterworfen zu werden (Artikel 22 DSGVO) </li>
</ul>
<br />
Wenn Sie glauben, dass die Verarbeitung Ihrer Daten gegen das Datenschutzrecht verstößt oder Ihre datenschutzrechtlichen Ansprüche sonst in einer Weise verletzt worden sind, können Sie sich bei der Aufsichtsbehörde beschweren, welche in Österreich die Datenschutzbehörde ist, deren Webseite Sie unter https://www.dsb.gv.at/ finden.
TLS-Verschlüsselung mit https
<br />
Wir verwenden https um Daten abhörsicher im Internet zu übertragen (Datenschutz durch Technikgestaltung Artikel 25 Absatz 1 DSGVO). Durch den Einsatz von TLS (Transport Layer Security), einem Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet können wir den Schutz vertraulicher Daten sicherstellen. Sie erkennen die Benutzung dieser Absicherung der Datenübertragung am kleinen Schlosssymbol links oben im Browser und der Verwendung des Schemas https (anstatt http) als Teil unserer Internetadresse.
</p>
<div id="ft">
<p>Ing. Mathias Teier &mdash; <a href="mailto:mathias.teier@cloudflight.io">mathias.teier@cloudflight.io</a> &mdash; +43660/2622472</p>
</div><!--// footer -->
</div><!-- // inner -->
</div><!--// doc -->
</body>
</html>

160
website/html/index.html Normal file
View File

@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Ing. Mathias Teier</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="reset-fonts-grids.css" media="all" />
<link rel="stylesheet" type="text/css" href="resume.css" media="all" />
</head>
<body>
<div id="doc2" class="yui-t7">
<div id="inner">
<div id="hd">
<div class="yui-gc">
<div class="yui-u first">
<h1>Ing. Mathias Teier</h1>
<h2>Software Engineer and Student</h2>
</div>
<div class="yui-u">
<div class="contact-info">
<h3><a href="mailto:mathias.teier@cloudflight.io">mathias.teier@cloudflight.io</a></h3>
<h3>+43660/2622472</h3>
</div><!--// .contact-info -->
</div>
</div><!--// .yui-gc -->
</div><!--// hd -->
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-gf">
<div class="yui-u first">
<h2>Profile</h2>
</div>
<div class="yui-u">
<p class="enlarge">
Be excellent to each other and do exceptional things. <br/>I'm driven by new challenges and motivated by finding solutions to these challenges. No matter
if it's that new project or that hard university course, always keep learning and improving!
</p>
</div>
</div><!--// .yui-gf -->
<div class="yui-gf">
<div class="yui-u first">
<h2>Skills</h2>
</div>
<div class="yui-u">
<div class="talent">
<h2>Software Engineering</h2>
<p>In software engineering I'm most experienced in Spring Boot microservice development, but in recent project I also got more familiar with Golang and .NET. Golang turned out
to be a quick and clean way to implement small services for continous automation and .NET makes it really fast and simple to build frontends thanks to Blazor.
</p>
</div>
<div class="talent">
<h2>Site Reliability Engineering</h2>
<p>In SRE I did projects concerning OpenShfit migration, Ansible automation, writing Ansible plugins, implementing services for continous
automation and much more.
</p>
</div>
<div class="talent">
<h2>English & Geography</h2>
<p>In my studies I primarily learn about English linguistics, cultural studies, human geogpraphy and pedagogy theory. I also learn about the basics of
anglophone literature, physical geography, cartography and geographic information systems.
</p>
</div>
</div>
</div><!--// .yui-gf -->
<div class="yui-gf">
<div class="yui-u first">
<h2>Experience</h2>
</div><!--// .yui-u -->
<div class="yui-u">
<div class="job">
<h2>Cloudflight</h2>
<h3>Software and Site Reliability Engineering</h3>
<h4>since 2017</h4>
<p>At Cloudflight I started out with Spring Boot backend development and React.JS frontend development in small scale projects. Later on I worked on
ElasticSearch upgrades and OpenShift migrations getting more and more into site reliability engineering. In my current projects I work on services for continous
automation.
</p>
</div>
<div class="job last">
<h2>Hitbox Entertainment GmbH</h2>
<h3>Internship</h3>
<h4>Summer 2014 and 2015</h4>
<p>During my internship at HitBox, a former Viennese live streaming service, I worked in Node.JS backend development and test automatisation</p>
</div>
</div><!--// .yui-u -->
</div><!--// .yui-gf -->
<div class="yui-gf">
<div class="yui-u first">
<h2>Technical</h2>
</div>
<div class="yui-u">
<ul class="talent">
<li>Spring (Boot)</li>
<li>Golang</li>
<li class="last">Asp.NET</li>
</ul>
<ul class="talent">
<li>Ansible</li>
<li>Docker</li>
<li class="last">Kubernetes & OpenShift</li>
</ul>
</div>
</div><!--// .yui-gf-->
<div class="yui-gf last">
<div class="yui-u first">
<h2>Education</h2>
</div>
<div class="yui-u">
<h2>BEd Student of English and Geography at the University of Vienna</h2>
<h3>Started in October 2020</h3>
</div>
<div class="yui-u">
<h2>HTL Krems, Department for Information Technology</h2>
<h3>Graduated in 2017, Granted the title "Ing." in 2020</h3>
</div>
</div><!--// .yui-gf -->
</div><!--// .yui-b -->
</div><!--// yui-main -->
</div><!--// bd -->
<div id="ft">
<p>Ing. Mathias Teier &mdash; <a href="mailto:mathias.teier@cloudflight.io">mathias.teier@cloudflight.io</a> &mdash; +43660/2622472
&mdash; <a href="impressum.html">Impressum</a></p>
</div><!--// footer -->
</div><!-- // inner -->
</div><!--// doc -->
</body>
</html>

File diff suppressed because one or more lines are too long

74
website/html/resume.css Normal file
View File

@ -0,0 +1,74 @@
/*
---------------------------------------------------------------------------------
STRIPPED DOWN RESUME TEMPLATE
html resume
v0.9: 5/28/09
design and code by: thingsthatarebrown.com
(matt brown)
---------------------------------------------------------------------------------
*/
.msg { padding: 10px; background: #222; position: relative; }
.msg h1 { color: #fff; }
.msg a { margin-left: 20px; background: #408814; color: white; padding: 4px 8px; text-decoration: none; }
.msg a:hover { background: #266400; }
/* //-- yui-grids style overrides -- */
body { font-family: Georgia; color: #444; }
#inner { padding: 10px 80px; margin: 80px auto; background: #f5f5f5; border: solid #666; border-width: 8px 0 2px 0; }
.yui-gf { margin-bottom: 2em; padding-bottom: 2em; border-bottom: 1px solid #ccc; }
/* //-- header, body, footer -- */
#hd { margin: 2.5em 0 3em 0; padding-bottom: 1.5em; border-bottom: 1px solid #ccc }
#hd h2 { text-transform: uppercase; letter-spacing: 2px; }
#bd, #ft { margin-bottom: 2em; }
/* //-- footer -- */
#ft { padding: 1em 0 5em 0; font-size: 92%; border-top: 1px solid #ccc; text-align: center; }
#ft p { margin-bottom: 0; text-align: center; }
/* //-- core typography and style -- */
#hd h1 { font-size: 48px; text-transform: uppercase; letter-spacing: 3px; }
h2 { font-size: 152% }
h3, h4 { font-size: 122%; }
h1, h2, h3, h4 { color: #333; }
p { font-size: 100%; line-height: 18px; padding-right: 3em; }
a { color: #990003 }
a:hover { text-decoration: none; }
strong { font-weight: bold; }
li { line-height: 24px; border-bottom: 1px solid #ccc; }
p.enlarge { font-size: 144%; padding-right: 6.5em; line-height: 24px; }
p.enlarge span { color: #000 }
.contact-info { margin-top: 7px; }
.first h2 { font-style: italic; }
.last { border-bottom: 0 }
/* //-- section styles -- */
a#pdf { display: block; float: left; background: #666; color: white; padding: 6px 50px 6px 12px; margin-bottom: 6px; text-decoration: none; }
a#pdf:hover { background: #222; }
.job { position: relative; margin-bottom: 1em; padding-bottom: 1em; border-bottom: 1px solid #ccc; }
.job h4 { position: absolute; top: 0.35em; right: 0 }
.job p { margin: 0.75em 0 3em 0; }
.last { border: none; }
.skills-list { }
.skills-list ul { margin: 0; }
.skills-list li { margin: 3px 0; padding: 3px 0; }
.skills-list li span { font-size: 152%; display: block; margin-bottom: -2px; padding: 0 }
.talent { width: 32%; float: left }
.talent h2 { margin-bottom: 6px; }
#srt-ttab { margin-bottom: 100px; text-align: center; }
#srt-ttab img.last { margin-top: 20px }
/* --// override to force 1/8th width grids -- */
.yui-gf .yui-u{width:80.2%;}
.yui-gf div.first{width:12.3%;}

15
website/update.yml Normal file
View File

@ -0,0 +1,15 @@
---
- name: Update nginx configs
hosts: teier.eu
gather_facts: yes
tasks:
- name: Remove old website files
shell: "rm -rf /var/www/html/website/*"
- name: Copy website
copy:
src: html/
dest: /var/www/html/website/
owner: www-data
group: www-data