all images in "category/images/file.jpg" and linked in article using "{attach}"

This commit is contained in:
rra 2019-06-19 15:19:39 +02:00
parent 7fd2644e21
commit 1decb69194
53 changed files with 59 additions and 64 deletions

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View File

Before

Width:  |  Height:  |  Size: 109 KiB

After

Width:  |  Height:  |  Size: 109 KiB

View File

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 385 KiB

View File

@ -3,7 +3,6 @@ Date: 2018-7-25
Tags: NAS, diy, vpn
Slug: network-backups-over-vpn
Description: How to set up a spare olimex board as a networked backup disk
Status: draft
Category: fundamentals
#Introduction
@ -14,16 +13,16 @@ This particular set up will be connected via the homerouter of the author's pare
## Hardware involved
![Image of an Olimex Lime A10](images/nas/nas_a10_olimex.JPG)
![Image of an Olimex Lime A10]({attach}images/nas_a10_olimex.JPG)
* Olimex Lime A10 512mb ram, 1 core
Fairly limited resources but like all olimex boards it has support for SATA disks and Li-Po batteries
The distro used is [Armbian](https://www.armbian.com/olimex-lime-a10/), unfortunately it is not supported beyond Debian Jessie anymore.
![Image of a 2.5" HDD and a micro SD card](images/nas/nas_storage_media.JPG)
![Image of a 2.5" HDD and a micro SD card]({attach}images/nas_storage_media.JPG)
* Class 10 Micro SD card that has a capacity of at least 4GB
* 2TB Hard Disk, 2.5" inch model that fits in laptops
![SATA Connecting cables ](images/nas/nas_sata_cables.JPG)
![SATA Connecting cables ]({attach}images/nas_sata_cables.JPG)
* A SATA Cable and a SATA-PWR cable, the SATAP-PWR cable needs a JST connector on one end. This can be easily DIY'd or purchased [via the Olimex website](https://www.olimex.com/Products/Components/Cables/SATA-CABLE-SET/)
* Powersupply that is able to feed both (5v, 1.2Ah).
* Access to a router and a ethernet cable

View File

@ -1,51 +1,46 @@
Title: Setting up port forwarding on your home router
Title: Port Forwarding on your home router
Date: 2019-01-14
Tags: port-forwarding, router
Slug: port-forwarding
Description: How to set up a spare computer as a server and make it reachable over the internet.
Tags: port forwarding, router, introduction, lan, wan
Slug: fundamentals-port-forwarding
Summary: How to make your homebrew server reachable over the internet using your home router.
Author: hbsc & friends
Status: draft
Category: fundamentals
Status: published
# UNDER CONSTRUCTION
##Introduction
The whole premise of the homebrewserver.club is the simple - yet often overlooked - fact that your home internet subscription theoretically also allows you to host on-line services. Since the internet is in its essence a bi-directional medium, anyone with an internet connection can not only look up on-line content but also host it!
The whole premise of the homebrewserver.club is the simple, yet often overlooked, fact that your home internet subscription theoretically also allows you to host services. The internet is in its essence a bi-directional medium. Anyone with an internet connection can not only look up on-line content but also host it!
In times of *cloud providers* and *virtual private servers* it is an easy thing to forget. Internet service providers (ISP) don't make it easy on you either. However, a homebrew server can be as simple as an old laptop connected directly to your home router.
In this article you will learn how to change the settings of the router provided by your ISP in order to make your homebrew server accessible from the internet!
In times of 'cloud providers' and 'virtual private servers' it is an easy thing to forget, and internet service providers don't make it easy on you either, but a homebrew server can be as simple as an old laptop connected directly to your home router.
##Requirements
To begin serving from home you need the following:
To begin serving from home you need the following:
- Make sure you have physical access to your home router.
- Get to know the password of the admin user (this is usually provided in the box or written on the label on the underside of the router).
- Have an available power socket next to your router.
- Have a home server running a web server and OpenSSH running on it.
- Have a homeserver with a web server and open SSH server running on it.
- An ethernet cable to connect your server to the router.
## Port forwarding theory
![A schematic representation depicting network address translation between a LAN and WAN](images/port-forwarding/port_forwarding.svg) A schematic representation depicting network address translation between a local area network and a wide area network, where ports are being forwarded from the WAN to home server on the LAN. The IP-addresses indicated in this schematic are used throught the article as for reference but might differ from your own situation.
![A schematic representation depicting network address translation between a local area network and a wide area network, where ports are being forwarded from the WAN to home server on the LAN]({attach}images/port_forwarding.svg)
Most home routers are configured by default to make the devices behind your router inaccessible to the internet using their inbuilt firewall. This is to prevent your private network from being public.
Most home routers are configured by default to make the devices behind your router inaccessible to the internet, using their inbuilt firewall. This is to prevent your private network from being public.
Machines behind your router (called your local area network or `LAN`) can make connections to the wider internet (known as `WAN`) but not the other way around.
In the case of hosting a server at home though, we DO want that server to be reachable from the internet. In order to do that we need to open so-called *ports*.
In the case of hosting a server at home though, we DO want that server to be reachable from the internet. In order to do that we need to open so-called *ports*.
Ports are logical 'gates' that are open or closed to connections. These ports have numbers and are [standardized](https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports) for specific protocols or applications.
For example, HTTP traffic from a website would default to port `80`. HTTPS defaults to `443` and SSH defaults to port `22`.
For example, HTTP traffic from a website would default to port `80`. HTTPS defaults to `443` and SSH defaults to port `22`.
To make our server accessible we need to open and forward those ports on the router/firewall to our server in a process called port-forwarding.
The exact method of port-forwarding differs from router to router. However, it always follows a similar scheme where you designate inbound traffic on a certain port to be forwarded to the IP address your server has on the local area network.
The effect of this is that all traffic with your home connection's IP-adress as a destination and bound for those ports will not be rejected by the firewall but forwarded to your server instead.
The exact method of port-forwarding differs from router to router but if follows always a similar scheme where you designate inbound traffic on a certain port to be forwarded to the IP address your server has on the local area network.
For this you need to have access to the administrative panel of your router.
@ -53,7 +48,7 @@ For this you need to have access to the administrative panel of your router.
To access the administrative panel of your router you need to find it's IP-address. You can do this by connecting to that router via Ethernet or Wi-Fi and then finding out what your own IP-address is.
On Debian based systems this is done like so in the terminal:
On Debian based systems this is done like this in the terminal:
`$ ifconfig`
@ -61,36 +56,37 @@ If you get a command not found warning try this:
`$ ip address`
This will return information on your network connection. Look for the line saying `inet`
This will return information on your network connection. Look for the line saying `inet`
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ac:ab:00:00:ac:ab brd ff:ff:ff:ff:ff:ff
inet 192.168.1.11/24 brd 192.168.1.255 scope global wlp3s0
valid_lft forever preferred_lft forever
inet6 fe80::eab1:fcff:acab:374e/64 scope link
inet6 fe80::eab1:fcff:acab:374e/64 scope link
valid_lft forever preferred_lft forever
In this case the IP-address of the machine is `192.168.1.11`. As a rule of thumb you can then change the last digit of your IP-address to either `1` or `254` to find the router.
In this case the IP-address is `192.168.1.11` as a rule of thumb you can then change the last digit to either `1` or `254` to find the router.
### Log in to your home router and get to know your LAN
Using a web browser, navigate to the IP-address you found above to reveal the router's admin panel. It should provide you with a log in field where you can enter the router's admin details to get access to the control panel.
Using a webbrowser navigate to the IP-address you found above to reveal the router's admin panel. It should provide you with a log in field where you can enter the router's admin details to get access to the control panel.
There you will see a lot of possible settings. Look at the options "LAN", "DHCP Leases" or "Network" to get an overview of all the devices.
### Connect your homeserver
Use an ethernet cable to connect your homeserver to your router. In case that it has ethernet ports in different colors/markings make sure you take something that says either `LAN` or `INET`. Once you have connected your home server to the router powered it on if you haven't already.
Use an ethernet cable to connect your homeserver to your router. In case that it has ethernet ports in different colors/markings make sure you take something that says either `LAN` or `INET`.
Have a look at your router's interface again and look for the IP-address that your server was assigned. In this guide I'll assume it was 192.168.1.10 as displayed in the graph above.
Have a look at your router's interface again and look for the IP-address that your server was assigned. In this guide I'll assume it was 192.168.1.10
Next try to find an option called "Static (DHCP) Lease" or "DHCP Binding" or something similar in your router interface's LAN view. Then make sure to assign your server a static DHCP lease. The IP-address it has now is probably fine for that! This will make sure that the server is always reachable under the same IP-addres.
Next try to find an option called "Static (DHCP) Lease" or "DHCP Binding" or something similar in your LAN view. Then make sure to assign your server a static DHCP lease. The IP-address it has now is probably fine for that! This will make sure that the server is always reachable under the same IP-addres.
## Forward the ports
Once you've set up a static lease to your homeserver you can start port forwarding. Depending on the make of the router it can be called Port Sharing or Traffic Forwarding and can usually be found in a section of the router admin interface dealing with 'security' or 'internet'.
Once you've set up a static lease to your homeserver you can start port forwarding.
## Additional Resources
* [https://portforward.com/](https://portforward.com/router.htm) has a large list of routers and visual instructions on how to set up port forwarding on them.
* [https://portforward.com/](https://portforward.com/router.htm) has a large list of routers and visual instructions on how to set up port forwarding on them.

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -77,17 +77,17 @@ After you clicked Next, the registration process might take up to 20 seconds.
**Start chatting.**
To start a chat you need to add another Jabber friend under the '+' in the menu and insert your friends Jabber ID, e.g. your-friend@a-jabber-server.com. Thats it. You can now chat with your friend. However, this will be unencrypted!
To start a chat you need to add another Jabber friend under the '+' in the menu and insert your friends Jabber ID, e.g. `your-friend@a-jabber-server.com`. Thats it. You can now chat with your friend. However, this will be unencrypted!
**Encryption**
So lets activate OMEMO encryption by pressing the padlock in the top menu bar:
![selecting OMEMO encryption](images/xmpp-msgr/conv_1.png)
![selecting OMEMO encryption]({attach}images/conv_1.png)
OMEMO is an extension to XMPP for multi-client end-to-end encryption. OMEMO only works if the fingerprint of your and your friends device match. To compare them, open one of your conversations and click on your profile picture next to one of your messages. At the same time, your friend clicks on your icon on his phone.
![Checking fingerprints](images/xmpp-msgr/conv_2.png)
![Checking fingerprints]({attach}images/conv_2.png)
Now, both of you should see a fingerprint that you can check. If they match, change the slider as you see in the screenshot to the right.
@ -95,22 +95,22 @@ If OMEMO cannot be activated, just send a message in the chat window. This somet
After you activated OMEMO, the input field at the bottom should say you can now send encrypted messages:
![The shield or padlock indicates an encrypted message](images/xmpp-msgr/conv_3.png)
![The shield or padlock indicates an encrypted message]({attach}images/conv_3.png)
Troubleshooting Conversations
---
If OMEMO cannot be activated, just send a message in the chat window. This sometimes helps. Also, it may help to end a conversation by pressing the menu on the top right inside a conversation as shown in the following screenshot, and then re-open the conversation again.
![Ending a conversation](images/xmpp-msgr/conv_4.png)
![Ending a conversation]({attach}images/conv_4.png)
Allow presence updates, this is used by OMEMO to exchange keys: In a conversation, click on the icon/image of your chat partner. In the new screen (as shown below), make sure that all checkboxes are activated:
![Make sure you allow presence updates so your client can exchange OMEMO keys](images/xmpp-msgr/conv_5.png)
![Make sure you allow presence updates so your client can exchange OMEMO keys]({attach}images/conv_5.png)
Check fingerprints: You might be asked to trust fingerprints like this:
![Checking fingerprints](images/xmpp-msgr/conv_2.png)
![Checking fingerprints]({attach}images/conv_2.png)
If you run into problems try asking for help in the Conversations XMPP groupchat: [conversations@conference.siacs.eu](xmpp:conversations@conference.siacs.eu?join)
@ -125,32 +125,32 @@ Get ChatSecure from the AppStore. `¯\_(ツ)_/¯`
Choose whether to create a new account or login with an existing one:
![Initial screen: create or add account](images/xmpp-msgr/cs_1.png) > ![Select XMPP](images/xmpp-msgr/cs_2.png) > ![The login screen](images/xmpp-msgr/cs_3.png)
![Initial screen: create or add account]({attach}images/cs_1.png) > ![Select XMPP]({attach}images/cs_2.png) > ![The login screen]({attach}images/cs_3.png)
If you already have an XMPP account, you can log in with your username@hostname and password. After you selected "Add Existing Account" you have the option to connect with "XMPP" or with "Google Talk". Select "XMPP" and fill in your Nickname, Username (username@server.net) and password. Optionally fill in the Hostname of your XMPP server and select if you want to use Tor or not. If you're doubting about the port, 5222 is the default XMPP port and would likely be on your server as well.
**Enabling Push**
![Considering using push](images/xmpp-msgr/cs_4.png)
![Considering using push]({attach}images/cs_4.png)
After you've logged in, the app proposes to establishe secure connections by sending an empty message to offline contacts. You have the option to "Enable push" or "skip" this part. iOS typically end the connection when an app runs in the background and requires use of Apple's Push servers to wake up and receive a message. By sending empty messages ChatSecure limits the data being sent to the Apple Cloud's Push Server but obviously still provide their vertically integrated cloud platform with meta-data. Read more about the Push issues [here](https://chatsecure.org/blog/chatsecure-v32-push/) and [here](https://chatsecure.org/blog/fixing-the-xmpp-push-problem/)
In the next screen you can "Share invite" (let people on social media know about the app) or tap the '✓' symbol in the top right corner to continue. This takes you to the general 'Settings' menu.
![Invite others to use ChatSecure](images/xmpp-msgr/cs_5.png) > ![Settings](images/xmpp-msgr/cs_6.png) > ![Logging out](images/xmpp-msgr/cs_7.png)
![Invite others to use ChatSecure]({attach}images/cs_5.png) > ![Settings]({attach}images/cs_6.png) > ![Logging out]({attach}images/cs_7.png)
If you are successfully connected, the word "Connected" appears right under your username. Before you can edit your account settings, you need to log out. To do this, click your account/nickname in the settings menu and select "Log Out".
**Create New Account**
![advanced options](images/xmpp-msgr/cs_8.png) > ![advanced options](images/xmpp-msgr/cs_9.png) > ![server options](images/xmpp-msgr/cs_10.png)
![advanced options]({attach}images/cs_8.png) > ![advanced options]({attach}images/cs_9.png) > ![server options]({attach}images/cs_10.png)
Choose "Create New Account" and give your preferred nickname. Under "show advanced options" you can customize your username, generate an automatic password, enable TOR (we didn't test it) and select a server where you would like to register your account on. This is the server you will use to communicate with other people's selected servers, and depending on the server settings it will also store your (encrypted) messages. ChatSecure let's you choose between 3 built-in servers options. Default is DuckDuckGo, but when you tap on "DuckDuckGo" the app will take you to the server selection screen where you can choose between DuckDuckGo, Calyxinstitute.org and OTR.im[ref]All three of these servers score poorly on the modern XMPP [compliance test](https://gultsch.de/compliance.html)[/ref], it also offers you the option to select another, custom, server. Here you can fill in the hostname of the XMPP server of a friend.
**Adding contacts**
![server options](images/xmpp-msgr/cs_13.png) > ![server options](images/xmpp-msgr/cs_14.png) > ![friend request](images/xmpp-msgr/cs_15.png)
![server options]({attach}images/cs_13.png) > ![server options]({attach}images/cs_14.png) > ![friend request]({attach}images/cs_15.png)
From the settings menu, tap 'Chats' (top left) to start chatting and adding friends. To add friends tap the 'Compose' icon, top left corner. Then tap "Add Buddy" and fill in your friends username and hostname (username@hostname) or scan their QR code.
@ -163,13 +163,13 @@ If you get a friend request, their nickname will appear in the "Chats" list.
When in a chat, tap the information icon on the top right (i) to change your encryption settings. The information menu displays your current and past verified fingerprints and allows you to specify an encryption method by tapping "Show Advanced Encryption Sett...".
![friend request](images/xmpp-msgr/cs_16.png) > ![friend request](images/xmpp-msgr/cs_17.png) > ![friend request](images/xmpp-msgr/cs_18.png)
![friend request]({attach}images/cs_16.png) > ![friend request]({attach}images/cs_17.png) > ![friend request]({attach}images/cs_18.png)
At the time of writing OMEMO works well with other OMEMO clients, images shared over HTTPUpload however are not displayed inline but rather as a URL. If you click that your browser will open it and fail to decrypt the OMEMO encoded image, because it has no notion of your OMEMO fingerprints. So for now the images shared over HTTPUpload have to be shared using plaintext.
ChatSecure implements OMEMO and OTR on a TOFU or “trust on first use" basis. New "buddies" are automatically trusted.
![friend request](images/xmpp-msgr/cs_18.png) > ![friend request](images/xmpp-msgr/cs_19.png)
![friend request]({attach}images/cs_18.png) > ![friend request]({attach}images/cs_19.png)
You can also untrust your friends devices/fingerprints by sliding the green "Verified" button and share fingerprints by tapping them and selecting a medium to share your fingerprint over.
@ -232,7 +232,7 @@ And now for OMEMO! There is a package gajim-omemo on Debian Backports. So run:
Next, start Gajim. After Gajim has started, wait some seconds until it requests your permission to install updates:
![Allow Gajim to update itself](images/xmpp-msgr/gajim_1.png)
![Allow Gajim to update itself]({attach}images/gajim_1.png)
Allow this. Afterwards, a new window will open that lists all components that can be installed and updated. In this list, activate the checkbox next to the following plugins:
@ -252,7 +252,7 @@ After the update has finished, go to the other tab **Installed**. There, make su
Then, you should see a wizard to setup your XMPP account. Select the option that you already have an account and follow all instructions yourself using the default settings.
![Gajim account creation wizard](images/xmpp-msgr/gajim_2.png)
![Gajim account creation wizard]({attach}images/gajim_2.png)
After you finished the wizard successfully, Gajim will show your status as **Available**. Congratulations!
@ -260,13 +260,13 @@ Now, lets send messages to your friends.
To do so, click on the Gajim window and move your mouse to the top of the screen. There, a menu should appear. Go to Actions -> Start chat… . In the new window, add the XMPP ID of your friend and click ok.
![Adding contacts](images/xmpp-msgr/gajim_3.png)
![Adding contacts]({attach}images/gajim_3.png)
Go to the main menu again and select **View -> Show offline contacts…** . In the Gajim window, you should see your friend. Right click on the name of your friend and select **Manage contact -> Add to roster.** In the pop up, just click **Add**. Now your friend is permanently added to your list of contacts. Next, right click on your friend and select **Manage contact -> Allow subscription -> Allow contact to see my status**.
Your friend should see a request like this:
![Friend request](images/xmpp-msgr/gajim_4.png)
![Friend request]({attach}images/gajim_4.png)
Your friend should click **Authorize**, which enables her to see if you are online or not. Also, this step is necessary for activating the encryption.
@ -274,7 +274,7 @@ Next, make sure that your friend also allows you to see her status.
Now, when you open the chat window to your friend, it should say OMEMO encryption enabled and show a red shield next to the input field, like this:
![Omemo enabled](images/xmpp-msgr/gajim_5.png)
![Omemo enabled]({attach}images/gajim_5.png)
If you dont see the OMEMO encryption enabledjust restart Gajim and have a look again.
@ -291,7 +291,7 @@ She should chose the tab Own devices, while you chose the tab Contact. Now, sele
Finally, all fingerprints should be green like this:
![Omemo enabled](images/xmpp-msgr/gajim_6.png)
![Omemo enabled]({attach}images/gajim_6.png)
**Troubleshooting**

View File

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View File

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 110 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 182 KiB

View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -39,21 +39,21 @@ You can find the source code for 'solar', the Pelican theme we developed [here](
One of the main challenges was to reduce the overall size of the website. Particularly to try and reduce the size of each page to something less than 1MB . Since a large part of both the appeal and the weight of the magazine comes from the fact it is richly illustrated, this presented us with a particular challenge.
![Image from the blog showing 19th century telephone switchboard operators, 159.5KB](images/lowtech-solar/international-switchboard.jpg)Image from the blog showing 20th century telephone switchboard operators([original source](https://commons.wikimedia.org/wiki/File:Bell_System_switchboard.jpg)), 159.5KB
![Image from the blog showing 19th century telephone switchboard operators, 159.5KB]({attach}images/international-switchboard.jpg)Image from the blog showing 20th century telephone switchboard operators([original source](https://commons.wikimedia.org/wiki/File:Bell_System_switchboard.jpg)), 159.5KB
In order to reduce the size of the images, without diminishing their role in the design and the blog itself, we reverted to a technique called dithering:
![The same image but dithered with a 3 color palette](images/lowtech-solar/international-switchboard3.png)The same image but dithered with a 3 color palette, 36.5KB
![The same image but dithered with a 3 color palette]({attach}images/international-switchboard3.png)The same image but dithered with a 3 color palette, 36.5KB
This is a technique 'to create the illusion of "color depth" in images with a limited color palette'[^illusion]. It based on the print reproduction technique called [halftoning](https://en.wikipedia.org/wiki/Halftone). Dithering, or digital half-toning[^digitalhalftone], was widely used in video games and pixel art at a time when a limited amount of video memory constrained the available colors. In essence dithering relies on optical illusions to simulate more colors. These optical illusions are broken however by the distinct and visible patterns that the dithering algorithms generate.
![Dithered with a six tone palette](images/lowtech-solar/international-switchboard6.png)Dithered with a six tone palette, 76KB
![Dithered with a six tone palette]({attach}images/international-switchboard6.png)Dithered with a six tone palette, 76KB
As a consequence most of the effort and literature on dithering is around limiting the 'banding' or visual artifacts by employing increasingly complex dithering algorithms[^dithering].
Our design instead celebrates the visible patterns introduced by the technique, this to stress the fact that it is a 'different' website. Coincidentally, the 'Bayesian Ordered Dithering' algorithm that we use not only introduces these distinct visible patterns, but it is also quite a simple and fast algorithm.
![Dithered with an eleven tone color palette](images/lowtech-solar/international-switchboard11.png)Dithered with an eleven tone palette, 110KB
![Dithered with an eleven tone color palette]({attach}images/international-switchboard11.png)Dithered with an eleven tone palette, 110KB
We chose dithering not only for the compression but also for the aesthetic and reading experience. Converting the images to grayscale and then dithering them allows us to scale them in a visually attractive way to 100% of the view port, despite their small sizes. This gives each article a visual consistency and provides the reader with pauses in the long articles.
@ -75,7 +75,7 @@ Increasing the uptime of the server to 99% on solar energy means increasing the
Rather than that we opted for a low-tech approach that accepts being off-line during longer stretches of cloudy weather. However, we wanted to provide the reader with off-line reading options. Our primary method of doing so currently is by providing an [RSS feed containing all the articles and images on the site](https://solar.lowtechmagazine.com/feeds/all.rss.xml). In the future we will explore other means of providing off-line reading of the magazine.
![An image of the built-in feed reader of Firefox showing solar.lowtechmagazine.com's RSS feed](images/lowtech-solar/off-line-reading.png) Most browsers preview only the article titles and summaries of the RSS feed. In fact the feed contains the full articles. Once you add the feed to your favorite reader, it will download the full articles that you can read at any given time.
![An image of the built-in feed reader of Firefox showing solar.lowtechmagazine.com's RSS feed]({attach}images/off-line-reading.png) Most browsers preview only the article titles and summaries of the RSS feed. In fact the feed contains the full articles. Once you add the feed to your favorite reader, it will download the full articles that you can read at any given time.
## Material Server
@ -399,7 +399,7 @@ Without further ado:
# Hardware
![Image of an A20 Olimex SoC board](images/lowtech-solar/lime2.png)
![Image of an A20 Olimex SoC board]({attach}images/lime2.png)
### Server
The server itself is an [Olimex Olinuxino A20 Lime 2](https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME2/) single board computer.
@ -412,7 +412,7 @@ In addition to the power statistics the power chip can charge and discharge a Li
The server operating system all runs on an SD-card. Not only are these low-powered but also much faster than hard drives. We use high speed Class 10 16GB mirco-sd card. A 16GB card is actually a bit of an overkill considering the operating system is around 1GB and the website a mere 30MB, but considering the price it doesn't make sense to buy any smaller high-performance cards.
![SPS Close](images/lowtech-solar/sps_close.png)
![SPS Close]({attach}images/sps_close.png)
### Network

View File

@ -14,7 +14,7 @@ If you have questions or would like to join check out our [mailinglist](https://
Unless otherwise specified, all the material on this website is published under a [Attribution-ShareAlike 4.0 International license](http://creativecommons.org/licenses/by-sa/4.0/).
![CC](images/about/chooser_cc.png) ![BY](images/about/chooser_by.png)
![SA](images/about/chooser_sa.png)
![CC]({attach}images/chooser_cc.png) ![BY]({attach}images/chooser_by.png)
![SA]({attach}images/chooser_sa.png)
![winning!](images/about/seal_of_freedom.png)
![winning!]({attach}images/seal_of_freedom.png)

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB