From 9658e86f415fcc84ed7b47d37ea756b4dbefcdac Mon Sep 17 00:00:00 2001 From: Mathias Teier Date: Sun, 31 Jan 2021 20:52:24 +0100 Subject: [PATCH] Add Mautrix-Whatsapp and Website --- mautrix-signal/docker-compose.yml | 2 +- mautrix-signal/start.yml | 4 +- mautrix-signal/stop.yml | 4 +- mautrix-signal/teardown.yml | 4 +- mautrix-whatsapp/docker-compose.yml | 15 +++ mautrix-whatsapp/start.yml | 25 +++++ mautrix-whatsapp/stop.yml | 6 ++ mautrix-whatsapp/teardown.yml | 6 ++ nextcloud/docker-compose.yml | 4 +- nextcloud/init.yml | 6 +- nextcloud/update.yml | 10 ++ nginx/sites/website | 20 +--- nummus/init.yml | 8 +- postgres/docker-compose.yml | 2 +- postgres/start.yml | 4 +- synapse/docker-compose.yml | 25 +++-- website/html/impressum.html | 98 +++++++++++++++++ website/html/index.html | 160 ++++++++++++++++++++++++++++ website/html/reset-fonts-grids.css | 7 ++ website/html/resume.css | 74 +++++++++++++ website/update.yml | 15 +++ 21 files changed, 458 insertions(+), 41 deletions(-) create mode 100644 mautrix-whatsapp/docker-compose.yml create mode 100644 mautrix-whatsapp/start.yml create mode 100644 mautrix-whatsapp/stop.yml create mode 100644 mautrix-whatsapp/teardown.yml create mode 100644 nextcloud/update.yml create mode 100644 website/html/impressum.html create mode 100644 website/html/index.html create mode 100644 website/html/reset-fonts-grids.css create mode 100644 website/html/resume.css create mode 100644 website/update.yml diff --git a/mautrix-signal/docker-compose.yml b/mautrix-signal/docker-compose.yml index c2534c8..5d9ef1d 100644 --- a/mautrix-signal/docker-compose.yml +++ b/mautrix-signal/docker-compose.yml @@ -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 diff --git a/mautrix-signal/start.yml b/mautrix-signal/start.yml index baf7606..0971731 100644 --- a/mautrix-signal/start.yml +++ b/mautrix-signal/start.yml @@ -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: diff --git a/mautrix-signal/stop.yml b/mautrix-signal/stop.yml index a83188b..72e0e79 100644 --- a/mautrix-signal/stop.yml +++ b/mautrix-signal/stop.yml @@ -2,5 +2,5 @@ - hosts: teier.eu gather_facts: no tasks: - - name: Stop Mariadb - shell: "cd /dc/mariadb && docker-compose stop" \ No newline at end of file + - name: Stop Mautrix Signal + shell: "cd /dc/mautrix-signal && docker-compose stop" \ No newline at end of file diff --git a/mautrix-signal/teardown.yml b/mautrix-signal/teardown.yml index d05493f..0dbe887 100644 --- a/mautrix-signal/teardown.yml +++ b/mautrix-signal/teardown.yml @@ -2,5 +2,5 @@ - hosts: teier.eu gather_facts: no tasks: - - name: Teardown mariadb - shell: "cd /dc/mariadb && docker-compose down" \ No newline at end of file + - name: Teardown Mautrix Signal + shell: "cd /dc/mautrix-signal && docker-compose down" \ No newline at end of file diff --git a/mautrix-whatsapp/docker-compose.yml b/mautrix-whatsapp/docker-compose.yml new file mode 100644 index 0000000..d012fd9 --- /dev/null +++ b/mautrix-whatsapp/docker-compose.yml @@ -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 + \ No newline at end of file diff --git a/mautrix-whatsapp/start.yml b/mautrix-whatsapp/start.yml new file mode 100644 index 0000000..8ff0ba0 --- /dev/null +++ b/mautrix-whatsapp/start.yml @@ -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" diff --git a/mautrix-whatsapp/stop.yml b/mautrix-whatsapp/stop.yml new file mode 100644 index 0000000..84be03e --- /dev/null +++ b/mautrix-whatsapp/stop.yml @@ -0,0 +1,6 @@ +--- +- hosts: teier.eu + gather_facts: no + tasks: + - name: Stop mautrix-whatsapp + shell: "cd /dc/mautrix-whatsapp && docker-compose stop" \ No newline at end of file diff --git a/mautrix-whatsapp/teardown.yml b/mautrix-whatsapp/teardown.yml new file mode 100644 index 0000000..90a1b72 --- /dev/null +++ b/mautrix-whatsapp/teardown.yml @@ -0,0 +1,6 @@ +--- +- hosts: teier.eu + gather_facts: no + tasks: + - name: Teardown mautrix-whatsapp + shell: "cd /dc/mautrix-whatsapp && docker-compose down" \ No newline at end of file diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml index bb48bf9..3115aa0 100644 --- a/nextcloud/docker-compose.yml +++ b/nextcloud/docker-compose.yml @@ -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 diff --git a/nextcloud/init.yml b/nextcloud/init.yml index 3847a1c..5a92ebf 100644 --- a/nextcloud/init.yml +++ b/nextcloud/init.yml @@ -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 diff --git a/nextcloud/update.yml b/nextcloud/update.yml new file mode 100644 index 0000000..0539051 --- /dev/null +++ b/nextcloud/update.yml @@ -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" diff --git a/nginx/sites/website b/nginx/sites/website index 283edb6..c7352c4 100644 --- a/nginx/sites/website +++ b/nginx/sites/website @@ -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; } } \ No newline at end of file diff --git a/nummus/init.yml b/nummus/init.yml index 9a84624..3f1be44 100644 --- a/nummus/init.yml +++ b/nummus/init.yml @@ -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" diff --git a/postgres/docker-compose.yml b/postgres/docker-compose.yml index 1506ccd..329aa0f 100644 --- a/postgres/docker-compose.yml +++ b/postgres/docker-compose.yml @@ -12,6 +12,6 @@ services: ports: - 5432:5432 networks: - mariadb_net: + postgres_net: name: postgres_net driver: bridge diff --git a/postgres/start.yml b/postgres/start.yml index 47be434..323ea75 100644 --- a/postgres/start.yml +++ b/postgres/start.yml @@ -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') }}" diff --git a/synapse/docker-compose.yml b/synapse/docker-compose.yml index a987173..a95a723 100644 --- a/synapse/docker-compose.yml +++ b/synapse/docker-compose.yml @@ -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 - \ No newline at end of file + matrix_net: + name: matrix_net + driver: bridge + postgres_net: + name: postgres_net + external: true \ No newline at end of file diff --git a/website/html/impressum.html b/website/html/impressum.html new file mode 100644 index 0000000..267c4f7 --- /dev/null +++ b/website/html/impressum.html @@ -0,0 +1,98 @@ + + + + + + Ing. Mathias Teier + + + + + + + + +
+
+ + +

+ Impressum & Data Protection Declaration +

+

as I'm forced by Austrian and EU regulators and bureaucrats

+

+ Informationspflicht laut §5 E-Commerce Gesetz, §14 Unternehmensgesetzbuch, §63 Gewerbeordnung und Offenlegungspflicht laut §25 Mediengesetz. +

+ Mathias Teier
+ Baierdorf 33,
+ 3720 Baierdorf,
+ Österreich
+ Tel.: +43660/2622472
+ E-Mail: teier@kagent.at
+

+ EU-Streitschlichtung +

+ 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 +

+ 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 +

+ 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 +

+ 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. +

+ + Datenschutzerklärung +

+ 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. +
+ Diese Webseite speichert keine Cookies und speichert keine Daten abgesehen von temporären Zugriffs-Logs des Web-Servers. Diese Logs werden regelmäßig geleert. +
+ Ihnen stehen laut den Bestimmungen der DSGVO und des österreichischen Datenschutzgesetzes (DSG) grundsätzlich die folgende Rechte zu: +
+

    +
  • Recht auf Berichtigung (Artikel 16 DSGVO)
  • +
  • Recht auf Löschung („Recht auf Vergessenwerden“) (Artikel 17 DSGVO)
  • +
  • Recht auf Einschränkung der Verarbeitung (Artikel 18 DSGVO)
  • +
  • Recht auf Benachrichtigung – Mitteilungspflicht im Zusammenhang mit der Berichtigung oder Löschung personenbezogener Daten oder der Einschränkung der Verarbeitung (Artikel 19 DSGVO)
  • +
  • Recht auf Datenübertragbarkeit (Artikel 20 DSGVO)
  • +
  • Widerspruchsrecht (Artikel 21 DSGVO)
  • +
  • Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung — einschließlich Profiling — beruhenden Entscheidung unterworfen zu werden (Artikel 22 DSGVO)
  • +
+
+ 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 +
+ 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. +

+ +
+

Ing. Mathias Teier — mathias.teier@cloudflight.io — +43660/2622472

+
+ +
+ + +
+ + + + + diff --git a/website/html/index.html b/website/html/index.html new file mode 100644 index 0000000..305709f --- /dev/null +++ b/website/html/index.html @@ -0,0 +1,160 @@ + + + + + Ing. Mathias Teier + + + + + + + + +
+
+
+
+
+

Ing. Mathias Teier

+

Software Engineer and Student

+
+ +
+
+

mathias.teier@cloudflight.io

+

+43660/2622472

+
+
+
+
+ +
+
+
+ +
+
+

Profile

+
+
+

+ Be excellent to each other and do exceptional things.
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! +

+
+
+ +
+
+

Skills

+
+
+ +
+

Software Engineering

+

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. +

+
+ +
+

Site Reliability Engineering

+

In SRE I did projects concerning OpenShfit migration, Ansible automation, writing Ansible plugins, implementing services for continous + automation and much more. +

+
+ +
+

English & Geography

+

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. +

+
+
+
+ + + +
+ +
+

Experience

+
+ +
+ +
+

Cloudflight

+

Software and Site Reliability Engineering

+

since 2017

+

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. +

+
+ + +
+

Hitbox Entertainment GmbH

+

Internship

+

Summer 2014 and 2015

+

During my internship at HitBox, a former Viennese live streaming service, I worked in Node.JS backend development and test automatisation

+
+ +
+
+ +
+
+

Technical

+
+
+
    +
  • Spring (Boot)
  • +
  • Golang
  • +
  • Asp.NET
  • +
+ +
    +
  • Ansible
  • +
  • Docker
  • +
  • Kubernetes & OpenShift
  • +
+
+
+ + +
+
+

Education

+
+
+

BEd Student of English and Geography at the University of Vienna

+

Started in October 2020

+
+
+

HTL Krems, Department for Information Technology

+

Graduated in 2017, Granted the title "Ing." in 2020

+
+
+ + +
+
+
+ +
+

Ing. Mathias Teier — mathias.teier@cloudflight.io — +43660/2622472 + — Impressum

+
+ +
+ + +
+ + + + + diff --git a/website/html/reset-fonts-grids.css b/website/html/reset-fonts-grids.css new file mode 100644 index 0000000..c1586f0 --- /dev/null +++ b/website/html/reset-fonts-grids.css @@ -0,0 +1,7 @@ +/* +Copyright (c) 2009, Yahoo! Inc. All rights reserved. +Code licensed under the BSD License: +http://developer.yahoo.net/yui/license.txt +version: 2.7.0 +*/ +html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;} diff --git a/website/html/resume.css b/website/html/resume.css new file mode 100644 index 0000000..451ac46 --- /dev/null +++ b/website/html/resume.css @@ -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%;} + + diff --git a/website/update.yml b/website/update.yml new file mode 100644 index 0000000..354e968 --- /dev/null +++ b/website/update.yml @@ -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 \ No newline at end of file