about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaweł Dybiec <pawel@dybiec.info>2020-05-24 23:38:17 +0200
committerPaweł Dybiec <pawel@dybiec.info>2020-05-24 23:38:17 +0200
commitdb4ec760f4c5a2d2a881ff2ff86143f33d6decd0 (patch)
tree470cf9ab6a33585242147fd26d91ba264d313f1d
parentAdd cs map service (diff)
Add my website
-rw-r--r--README.md1
-rw-r--r--base_apps.yml18
-rw-r--r--compose/nginx/Dockerfile2
-rw-r--r--compose/nginx/conf.d/.keep_this_dir_in_git0
-rw-r--r--compose/nginx/main/archive.html48
-rw-r--r--compose/nginx/main/images/profile.jpgbin0 -> 88921 bytes
-rw-r--r--compose/nginx/main/images/profile.webpbin0 -> 15248 bytes
-rw-r--r--compose/nginx/main/index.html59
-rw-r--r--compose/nginx/main/static/dyniec.asc165
-rw-r--r--compose/nginx/main/style.css1
-rw-r--r--templates/nginx.conf.j23
11 files changed, 291 insertions, 6 deletions
diff --git a/README.md b/README.md
index db16b1e..0a9ec60 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@ ansible-playbook -i hosts bootstrap.yml
 ansible-playbook -i hosts base_apps.yml
 ansible-playbook -i hosts certs.yml
 ansible-playbook -i hosts --vault-password-file=vault.password docker.yml
+ansible-playbook -i hosts --vault-password-file=vault.password wireguard.yml
 
 ```
 
diff --git a/base_apps.yml b/base_apps.yml
index 54752d4..877210c 100644
--- a/base_apps.yml
+++ b/base_apps.yml
@@ -4,15 +4,22 @@
   remote_user: ansible_worker
   become: yes
   tasks:
-  - name: docker gpg keys
-    apt_key:
-      url: https://download.docker.com/linux/debian/gpg
   - name: Ensure apt has https transport
     apt: name=apt-transport-https
-  - name: docker debian repository
+  - name: Docker gpg keys
+    apt_key:
+      url: https://download.docker.com/linux/debian/gpg
+  - name: Docker deb repository
     apt_repository:
       repo: deb [arch=amd64] https://download.docker.com/linux/debian stretch stable 
       update_cache: true
+  - name: Syncthing gpg keys
+    apt_key:
+      url: https://syncthing.net/release-key.txt
+  - name: Syncthing deb repository
+    apt_repository:
+      repo: deb [arch=amd64] https://apt.syncthing.net/ syncthing stable 
+      update_cache: true
   - name: Base packages
     apt:
       name:
@@ -23,7 +30,7 @@
         - tig
         - git
         - rsync
-        - python-pip
+        - python3-pip
         - mc
         - mosh
   - name: Upgrade all packages
@@ -34,6 +41,7 @@
       executable: pip3
       name:
         - docker
+        - docker-py
         - docker-compose
 
   - name: Enable services
diff --git a/compose/nginx/Dockerfile b/compose/nginx/Dockerfile
index 93878d2..98e8011 100644
--- a/compose/nginx/Dockerfile
+++ b/compose/nginx/Dockerfile
@@ -1,4 +1,4 @@
-FROM nginx:alpine
+FROM nginx:mainline
 RUN rm -rf /etc/nginx/fastcgi.conf \
        /etc/nginx/fastcgi_params \
        /etc/nginx/scgi_params \
diff --git a/compose/nginx/conf.d/.keep_this_dir_in_git b/compose/nginx/conf.d/.keep_this_dir_in_git
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/nginx/conf.d/.keep_this_dir_in_git
diff --git a/compose/nginx/main/archive.html b/compose/nginx/main/archive.html
new file mode 100644
index 0000000..4acb7ec
--- /dev/null
+++ b/compose/nginx/main/archive.html
@@ -0,0 +1,48 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>dyniec - Archives</title>
+    <link rel="stylesheet" href="./style.css" />
+  </head>
+  <body>
+    <aside>
+      <div>
+	<a href="./">
+	  <img src="./images/profile.webp" alt="dyniec's website" title="dyniec's website">
+	</a>
+	
+	<nav>
+          <h1> <a href="./">Home</a> </h1>
+	  <ul>
+	  </ul>
+	  
+	  <h1> Links </h1>
+	  <ul>
+	    <li> <a href="https://github.com/dyniec">GitHub </a> </li>
+	    <li> <a href="https://git.dybiec.info/dyniec">My git </a> </li>
+	  </ul>
+	</nav>
+	
+      </div>	
+    </aside>
+    <main>
+      <div id="content">
+        <h1>Archives</h1>
+        Here you can find all my previous posts:
+<ul>
+    
+</ul>
+
+
+	
+      </div>
+      <footer>
+        Site proudly generated by
+        <a href="http://jaspervdj.be/hakyll">Hakyll</a>
+      </footer>
+    </main>
+  </body>
+</html>
diff --git a/compose/nginx/main/images/profile.jpg b/compose/nginx/main/images/profile.jpg
new file mode 100644
index 0000000..2f8ac0b
--- /dev/null
+++ b/compose/nginx/main/images/profile.jpg
Binary files differdiff --git a/compose/nginx/main/images/profile.webp b/compose/nginx/main/images/profile.webp
new file mode 100644
index 0000000..3ea6909
--- /dev/null
+++ b/compose/nginx/main/images/profile.webp
Binary files differdiff --git a/compose/nginx/main/index.html b/compose/nginx/main/index.html
new file mode 100644
index 0000000..9498996
--- /dev/null
+++ b/compose/nginx/main/index.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="x-ua-compatible" content="ie=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>dyniec - About me</title>
+    <link rel="stylesheet" href="./style.css" />
+  </head>
+  <body>
+    <aside>
+      <div>
+	<a href="./">
+	  <img src="./images/profile.webp" alt="dyniec's website" title="dyniec's website">
+	</a>
+	
+	<nav>
+          <h1> <a href="./">Home</a> </h1>
+	  <ul>
+	  </ul>
+	  
+	  <h1> Links </h1>
+	  <ul>
+	    <li> <a href="https://github.com/dyniec">GitHub </a> </li>
+	    <li> <a href="https://git.dybiec.info/dyniec">My git </a> </li>
+	  </ul>
+	</nav>
+	
+      </div>	
+    </aside>
+    <main>
+      <div id="content">
+        <h1>About me</h1>
+        <h2 id="who-i-am">Who I am</h2>
+<p>Hi! My name is Paweł Dybiec. I was born in 1995, and spent most of my life in Wrocław, Poland.</p>
+<ul>
+<li>master’s student in Computer Science at <a href="http://ii.uni.wroc.pl/">University of Wrocław</a></li>
+<li>team leader in <a href="http://continuum.uni.wroc.pl/">Continuum Science Club</a> 2018-2019</li>
+<li>organizer of <a href="https://contest.pizza/">Pizza contest</a> 2018</li>
+<li>functional programming enthusiast</li>
+<li>operating systems enthusiast</li>
+</ul>
+<h2 id="contact">Contact</h2>
+<p>You can reach me by using:</p>
+<ul>
+<li>email: pawel at dybiec.info</li>
+<li>matrix: <span class="citation" data-cites="dyniec:matrix.org">@dyniec:matrix.org</span></li>
+</ul>
+<h2 id="pgp-key">PGP key</h2>
+<p>Fingerprint: <a href="static/dyniec.asc">D981 E3D6 24C1 1C20 B04F CD2B 2397 F066 368B 6FD9</a></p>
+	
+      </div>
+      <footer>
+        Site proudly generated by
+        <a href="http://jaspervdj.be/hakyll">Hakyll</a>
+      </footer>
+    </main>
+  </body>
+</html>
diff --git a/compose/nginx/main/static/dyniec.asc b/compose/nginx/main/static/dyniec.asc
new file mode 100644
index 0000000..7abc247
--- /dev/null
+++ b/compose/nginx/main/static/dyniec.asc
@@ -0,0 +1,165 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+83RrDmjLF4SosUN1ii5FUpsVSjJiMwWIkQ==
+=oJqf
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/compose/nginx/main/style.css b/compose/nginx/main/style.css
new file mode 100644
index 0000000..04e2c4b
--- /dev/null
+++ b/compose/nginx/main/style.css
@@ -0,0 +1 @@
+html{position:relative background-color:#fff;font-family:sans-serif;line-height:24px}body{color:#333;font-size:16px}h1,h2,h3{margin:0px 0px 18px 0px;padding:24px 0px 0px 0px}p,ul{margin:18px 0px 18px 0px}img{margin:12px 0px 12px 0px;max-width:100%}ul{padding-left:18px}a{color:#111;text-decoration:none}h1,h2,h3{font-weight:normal}h1{font-size:26px}h2{font-size:22px}h3{font-size:18px}@media screen and (min-width:768px){aside{width:15%;height:100%;position:fixed;top:0;left:0}main{width:80%;position:absolute;top:0;left:15%}}aside h1,aside h2,aside h3{margin:0px 0px 8px 0px;padding:8px 0px 0px 0px}aside ul{padding-left:0px;margin:8px 0px 8px 0px}aside{background-color:#333333;color:#ffffff;text-align:center}aside a{color:#eeeeee}aside div{padding-bottom:1em}aside div img{border-radius:50%;max-width:120px}aside div nav ul li{display:block;text-transform:lowercase;margin:2px 2px 2px 2px}footer{color:#555555;font-size:14px;text-align:center;height:4em;width:100%;padding-top:1.2em;font-family:sans-serif bottom:0}footer a{color:#111111;font-weight:bold}body div#content{padding-left:4%}main a{border-bottom:1px solid #555}
diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2
index 2927af8..2cc027d 100644
--- a/templates/nginx.conf.j2
+++ b/templates/nginx.conf.j2
@@ -62,5 +62,8 @@ server {
   location = /50x.html {
     root /usr/share/nginx/html;
   }
+  location ~ (\.env|wp-login\.php|wp-admin) {
+    return 301 https://www.youtube.com/watch?v=dQw4w9WgXcQ;
+  }
 
 }