Merge branch 'master' of code.ungleich.ch:ungleich-public/ungleich-staticcms

This commit is contained in:
Nico Schottelius 2021-12-11 19:39:08 +01:00
commit fb38fa6580
51 changed files with 1576 additions and 161 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
venv/ venv/
.DS_Store .DS_Store
.idea/ .idea/
.history

View file

@ -1,11 +1,17 @@
BUILDDIR?=../ungleich-staticcms-build BUILDDIR?=../ungleich-staticcms-build
DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/u/ DESTINATION=ungleichstatic@staticweb.ungleich.ch:/home/services/www/ungleichstatic/staticcms.ungleich.ch/www/u/
all: publish all: goodpush
pull: pull:
git pull git pull
push:
git push
goodpush:
make publish && make push
publish: pull build deploy publish: pull build deploy
deploy: permissions deploy: permissions
@ -16,8 +22,12 @@ permissions: build
find $(BUILDDIR) -type f -exec chmod 0644 {} \; find $(BUILDDIR) -type f -exec chmod 0644 {} \;
find $(BUILDDIR) -type d -exec chmod 0755 {} \; find $(BUILDDIR) -type d -exec chmod 0755 {} \;
build: build: venv
lektor build -O $(BUILDDIR) . ./venv/bin/activate && lektor build -O $(BUILDDIR)
clean: clean:
rm -rf $(BUILDDIR) rm -rf $(BUILDDIR)
venv: requirements.txt
python3 -m venv venv
sh -c ". ./venv/bin/activate && pip install -r requirements.txt"

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
assets/u/image/product.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

View file

@ -9,3 +9,25 @@
.headlinebold { .headlinebold {
font-family: "Nimbus Sans L"; font-family: "Nimbus Sans L";
} }
.colored-table {
text-align: center;
background: #E5EDF1;
}
.colored-table td, .colored-table th {
border: 1px solid #fff;
}
.colored-table thead th {
border-bottom: 2px solid #fff;
}
.bg-offer {
background-color: #c0dcf3;
}
.table-responsive {
font-family: "Rubik", sans-serif;
font-size: 13px;
line-height: 22px;
}

View file

@ -25,6 +25,20 @@ header h1 {
font-size: 42px; font-size: 42px;
} }
// Sanghee, 2021-09-20
h2 {
font-size: 1.65rem;
line-height: 2;
font-weight: 700;
}
// Sanghee, 2021-09-20
h3 {
font-size: 1rem;
text-transform: uppercase;
font-weight: 700;
}
header nav ul { header nav ul {
list-style: none; list-style: none;
margin: 0; margin: 0;

View file

@ -0,0 +1,132 @@
title: Bye, bye netboot
---
pub_date: 2021-08-31
---
author: ungleich infrastructure team
---
twitter_handle: ungleich
---
_hidden: no
---
_discoverable: yes
---
abstract:
Data Center Light servers are switching to disk based boot
---
body:
## Introduction
Since the very beginning of the [Data Center Light
project](/u/projects/data-center-light) our servers have been
*somewhat stateless* and booted from their operating system from the
network.
From today on this changes and our servers are switched to boot from
an disk (SSD/NVMe/HDD). While this first seems counter intuitive with
growing a data center, let us explain why this makes sense for us.
## Netboot in a nutshell
There are different variants of how to netboot a server. In either
case, the server loads an executable from the network, typically via
TFTP or HTTP and then hands over execution to it.
The first option is to load the kernel and then later switch to an NFS
based filesystem. If the filesystem is read write, you usually need
one location per server or you mount it read only and possibly apply
an overlay for runtime configuration.
The second option is to load the kernel and an initramfs into memory
and stay inside the initramfs. The advantage of this approach is that
no NFS server is needed, but the whole operating system is inside the
memory.
The second option is what we used in Data Center Light for the last
couple of years.
## Netboot history at Data Center Light
Originally all our servers started with IPv4 PXE based
netboot. However as our data center is generally speaking IPv6 only,
the IPv4 DHCP+TFTP combination is an extra maintenance and also a
hindrance for network debugging: if you are in a single stack IPv6
only network, things are much easier to debug. No need to look for two
routing tables, no need to work around DHCP settings that might
interfere with what one wants to achieve via IPv6.
As the IPv4 addresses became more of a technical debt in our
infrastructure, we started flashing our network cards with
[ipxe](https://ipxe.org/), which allows even older network cards to
boot in IPv6 only networks.
Also in an IPv6 only netboot environment, it is easier to run
active-active routers, as hosts are not assigned DHCP leases. They
assign addresses themselves, which scales much nicer.
## Migrating away from netbooting
So why are we migrating away from netbooting, even after we migrated
to IPv6 only networking? There are multiple aspects:
On power failure, netbooted hosts lose their state. The operating
system that is loaded is the same for every server and needs some
configuration post-boot. We have solved this using
[cdist](https://www.cdi.st/), however the authentication-trigger
mechanism is non-trivial, if you want to keep your netboot images and
build steps public.
The second reason is state synchronisation: as we are having multiple
boot servers, we need to maintain the same state on multiple
machines. That is solvable via CI/CD pipelines, however the level of
automation on build servers is rather low, because the amount of OS
changes are low.
The third and main point is our ongoing migration towards
[kubernetes](https://kubernetes.io/). Originally our servers would
boot up, get configured for providing ceph storage or to be a
virtualisation host. The amount of binaries to keep in our in-memory
image was tiny, in the best case around 150MB. With the migration
towards kubernetes, every node is downloading the containers, which
can be comparable huge (gigabytes of data). The additional pivot_root
workarounds that are required for initramfs usage are just an
additional minor point that made us question our current setup.
## Automating disk based boot
We have servers from a variety of brands and each of them comes with a
variety of disk controllers: from simple pass-through SATA controllers
to full fledged hardware raid with onboard cache and battery for
protecting the cache - everything is in the mix.
So it is not easily possible to generate a stack of disks somewhere
and then add them, as the disk controller might add some (RAID0) meta
data to it.
To work around this problem, we insert the disk that is becoming the
boot disk in the future into the netbooted servers, install the
operating system from the running environment and at the next
maintenance window ensure that the server is actually booting from it.
If you are curious on how this works, you can checkout the script that
we use for
[Devuan/Debian](https://code.ungleich.ch/ungleich-public/ungleich-tools/-/blob/master/debian-devuan-install-on-disk.sh)
and
[Alpine Linux](https://code.ungleich.ch/ungleich-public/ungleich-tools/-/blob/master/alpine-install-on-disk.sh)
## The road continues
While a data center needs to be stable, it also needs to adapt to
newer technologies or different flows. The disk based boot is our
current solution for our path towards kubernetes migration, but who
knows - in the future things might look different again.
If you want to join the discussion, we have a
[Hacking and Learning
(#hacking-and-learning:ungleich.ch)](/u/projects/open-chat/) channel
on Matrix for an open exchange.
Oh and in case [you were wondering what we did
today](https://twitter.com/ungleich/status/1432627966316584968), we
switched to disk based booting - that case is full of SSDs, not 1'000
CHF banknotes.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

View file

@ -0,0 +1,57 @@
title: Introducting Kubernetes based IPv4 to IPv6 proxies
---
pub_date: 2021-11-22
---
author: ungleich
---
twitter_handle: ungleich
---
_hidden: no
---
_discoverable: no
---
abstract:
How to proxy from IPv4 to IPv6 in an IPv6 only kubernetes cluster.
---
body:
## The crazy project: IPv6 based IPv4 proxies in Kubernetes
If you know ungleich, you know that we always push the limits of what
is possible. Today we want to push the barrier of "where can
IPv4-to-IPv6 proxies live" a bit further. Let's see how that is going
to look like!
## IPv4-to-IPv6 proxies in general
Before going into the details, let's see how and why we use
IPv4-to-IPv6 proxies in general:
![](/u/image/ipv6-to-ipv4-proxy.png)
The basic idea is that IPv6 only services are made reachable via
IPv4-to-IPv6 proxies towards the IPv4 world. So far we are offering
this based on standard virtual machines. You can checkout
[our previous tech
talk](/u/blog/ungleich-tech-talk-2-accessing-ipv4-only-devices-via-ipv6/)
for details on how this works.
Let's try to dial things up a few notches, shall we?
## Moving the IPv4-to-IPv6 proxy into kubernetes
You are probably aware that at ungleich we are moving our workload
from [cdist](https://cdi.st) + virtual machine automated workloads
towards Kubernetes. At ungleich we are using
[haproxy](http://www.haproxy.org/) as a basis for our IPv4-to-IPv6
proxies. Moving this into kubernetes
## Other solution?
As you can see, mixing the dynamic IP generation and coupling it with
static DNS entries for IPv4 resolution is not the easiest tasks. If
you have a smart idea on how to solve this without manually creating
entries for each and every service,
[give us a shout!](/u/contact)

View file

@ -15,6 +15,13 @@ The first un-hack4glarus happens as a camp - Thursday 2021-08-19 to Sunday 2021-
--- ---
body: body:
## Glamp 2021 has been CANCELLED
Due to the rising number of Coronavirus infections, travel
restrictions and travel uncertainties,
we have decided to CANCEL the GLAMP2021.
## Tl;DR ## Tl;DR
Get your tent, connect it to power and 10Gbit/s Internet in the midst Get your tent, connect it to power and 10Gbit/s Internet in the midst

View file

@ -18,11 +18,16 @@ body:
## TL;DR ## TL;DR
You can use **IPv6address.has-a.name** as a domain name You can use **IPv6address.has-a.name** as a domain name
for any of your containers or VMs. The required format is for any of your computers, containers or VMs. The required format is
**1234-5678-9abc-def0-1234-5678-9abc-def0.has-a.name**. This is **1234-5678-9abc-def0-1234-5678-9abc-def0.has-a.name**. This is
already a already a
valid name and points to the IPv6 address valid name and points to the IPv6 address
*1234:5678:9abc:def0:1234:5678:9abc:def0*. *1234:5678:9abc:def0:1234:5678:9abc:def0*.
Alternatively you can also use the domain **has-aaaa.name**, which
implies IPv6 stronger.
Both domains support IPv6 abbreviation using dashes,
you can f.i. use **2a0a-e5c0--3.has-aaaa.name**.
## Introduction ## Introduction

View file

@ -203,6 +203,25 @@ to fe80::1"
Thanks again for the pointer! Thanks again for the pointer!
### The prettysocks SOCKS5 proxy (update 2021-11-24)
On 2021-11-23 we have been notified that there is a new workaround
available:
[prettysock](https://github.com/twisteroidambassador/prettysocks/tree/ipv6-literal)
is a Socks5 proxy written in python that allows the use of Microsoft's
**ipv6-literal.net** domain, but from any OS or browser, which is
pointed to the proxy. So to access **fe80::1ff:fe23:4567:890a%3**,
configure your browser to use the local prettysocks Socks5 proxy,
replace the link local address with
**fe80--1ff-fe23-4567-890as3.ipv6-literal.net** and there you go.
There are two interesting things to say about this solution:
* It is a very simple solution
* It is surprising that browser vendors haven't implement such a
simple solution themselves so far - does it need an RFC that defines
the domain to be used?
## Other resources ## Other resources
If you are aware of other resources regarding IPv6 link local support If you are aware of other resources regarding IPv6 link local support

View file

@ -0,0 +1,200 @@
title: IPv6, VPN and DNS entries
---
pub_date: 2021-10-13
---
author: Nico Schottelius
---
twitter_handle: NicoSchottelius
---
_hidden: no
---
_discoverable: yes
---
abstract:
Looking at how the patterns of VPN and DNS names changes with IPv6
---
body:
## TL; DR
With IPv6, DNS management of protected networks can be
simplified. IPv6 VPNs can use simplified DNS configurations to
simplify the network configurations by just using public, restricted
DNS entries.
## VPN and DNS in the IPv4 world
VPNs in the IPv4 world are often used to create site-to-site tunnels,
allowing different networks to talk to each other. A typical case is
that organisation A needs to access protected resources of
organisation B and maybe even vice-versa. So a typical VPN looks like
this:
```
Organisation A
--------------
Protected Host A ---------- Router/VPN gateway
(10.0.0.42/24) |
|
|
Organisation B (Internet)
-------------- |
|
|
Protected Host B ---------- Router/VPN gateway
(10.20.0.42/24)
Host name: lakeside.int.org-b.example.com
```
Now if the Protected Host A and Protected Host B want to communicate
with each other on IP basis, this is no problem (I am not elaborating
on the problems of IP collisions in this article, a follow up article
will follow soon).
However if Protected Host A wants to reach the Protected Host B via
its internal DNS name **lakeside.int.org-b.example.com**, this is
usually a problem, for multiple reasons:
* Protected Host A might not know the right internal DNS server to
query for int.org-b.example.com.
* Protected Host A might know the right internal DNS server to
query for int.org-b.example.com, but might not have access to it via
the VPN
* The DNS records for int.org-b.example.com often are intentionally
not published to public DNS for multiple reasons: privacy related or
because administrators don't like to publish RFC1918 records into
public DNS records
## VPN and DNS in the IPv6 world
There are multiple ways of how VPNs can be built in the IPv6 world,
including usage of the private IPv4 addresses equivalent named Unique
Local Address (ULA). However instead of using ULA, I will today show
an approach that is more "IPv6 native", using Global Unique Addresses
(GUA), or what is simply known as "public IPv6 address".
While you might have heard it, I will repeat nonetheless: there are
enough IPv6 addresses for every practical use case that we imagine at
the moment. This is important, because we can use **globally unique
IPv6 addresses** inside the VPN.
Isn't that a problem? Publicly reachable IPv6 addresses inside a VPN?
It would, if the addresses were **globally reachable**. In the IPv6
world nothing speaks against having **globally unique, but non-routed
IPv6 addresses**. This is actually a perfect match and much better
than we can do in the IPv4 world:
* Both organisations A and B can acquire globally unique
addresses. Let's say they organisation A acquires 2001:db8:0::/48 and
organisation B acquires 2001:db8:1::/48.
* Both organisations have two options: they can announce their IPv6
range to the Internet and block access to their internal network or
* both they can even consider not to announce their network at all
(there is not route in the Internet for it)
In either case, both organisations will usually select a sub network
of size /64 for the resources they want to expose via the VPN. Let's
say organisation A chooses 2001:db8:0:cafe::/64 and organisation B
chooses 2001:db8:1:7ea::/64. Putting this in context, their VPN now
looks like this:
```
Organisation A
--------------
Protected Host A ---------- Router/VPN gateway
(2001:db8:0:cafe::42/64) |
|
|
Organisation B (Internet)
-------------- |
|
|
Protected Host B ---------- Router/VPN gateway
(2001:db8:1:7ea::42/64) |
Host name: lakeside.int.org-b.example.com
```
Now, how does this change the DNS server situation? Because we are
using IPv6, we have many more options:
* a) We can publish the DNS records of the domain
int.org-b.example.com globally. While access to the network
2001:db8:1:7ea::/64 is only possible via VPN, nothing speaks against
having the records in a public DNS server. However, some
administrators advocate to not publish them publicly for privacy
reasons. That is the same logic as publishing or not publish the
RFC1918 (10.x.y.z) addresses in the IPv4 world.
* b) We can publicly/globally delegate the domain
int.org-b.example.com to a nameserver that is only reachable via the
VPN.
* c) We can proceed the same as in the IPv4 world and have a
disconnect, internal DNS server that is responsible for
int.org-b.example.com.
Option (a) is often seen as a security risk and it can be debated
whether someone who can already guess the correct hostname and
retrieve it's IP address is really a significant higher security
thread than anybody just guessing IP addresses.
Option (c) is the typical case for IPv4 based VPNs and is causing
above illustrated issues.
Option (b) is the one that makes IPv6 VPNs much more interesting than
IPv4 based VPNs:
* The world can know that there is an internal domain
**int.org-b.example.com** and find out which DNS servers are
responsible for it.
* However an attacker easily guesses that internal networks exist
anyway.
Let's have a look at sample nameserver entries in detail:
```
int.org-b.example.com. NS ns-int1.org-b.example.com.
int.org-b.example.com. NS ns-int2.org-b.example.com.
```
What does that mean? Anyone in the world can retrieve the information
that int.org-b.example.com has two DNS servers. However the DNS
servers responsible for org-b.example.com can hide the IP addresses of
ns-int1.org-b.example.com and ns-int2.org-b.example.com for everyone,
but hosts coming from organisation A. Or even if the IP addressses of
ns-int1.org-b.example.com and ns-int2.org-b.example.com are world
known, access to them can easily be prevented.
The measures for this can for instance be DNS views or firewall
entries. In practice this means for VPNs in the IPv6 world:
```
Organisation A
--------------
Protected Host A: what is the IP address of lakeside.int.org-b.example.com?
DNS Server of Organisation B: 2001:db8:1:7ea::42
Outside party
-------------
Outside Hosts: what is the IP address of lakeside.int.org-b.example.com?
a) DNS Server of Organisation B: there is no domain
int.org-b.example.com (DNS view restriction)
b) DNS Server of Organisation B: these are the nameserver for
int.org-b.example.com, but you cannot reach them (firewall protection)
```
## Summary
For IPv6 based VPNs you can get away without reconfiguring your source
networks for DNS servers of the destination party. The target party
always needs to ensure proper access control to internal resources, so
there is no additional overhead.
DNS, correctly used in the IPv6 VPN world, is a really smooth
operation. This is why we recommend to use
[IPv6 as a basis for VPNs](https://ipv6vpn.ch).

View file

@ -1,18 +0,0 @@
title: something i want to talk about
---
pub_date: 2020-04-11
---
author: Sanghee Kim
---
twitter_handle: ungleich
---
_hidden: yes
---
_discoverable: no
---
abstract:
this is test post
---
body:
This is test post

View file

@ -0,0 +1,130 @@
_model: product
---
_discoverable: yes
---
_hidden: no
---
title: Dedicated Low Power Alpine
---
subtitle: Celebrating Alpine Linux 3.15 (2021-12-06..2021-12-24)
---
headline1: Alpine Linux 3.15
---
headline2: Low Power
---
headline3: APU Servers
---
header_background_color: #05450B
---
image: /u/image/cards/dedicated-alpine.jpg
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
## Alpine Linux 3.15 celebration
Just recently [Alpine Linux
3.15](https://alpinelinux.org/posts/Alpine-3.15.0-released.html) has
ben released. Also just a few days ago the first public
[dedicated server offer from ungleich](../dedicated-december-2021) has
been released. Enough reason to add one on top of it:
**Dedicated, low power servers running with Alpine Linux 3.15**
## Low Power Servers
We are proudly using the [PC Engines
APU](https://pcengines.ch/apu2.htm) in a lot of places at Data Center
Light. They are small, robust and easy to handle. And furthermore:
they consume only about 10W of power.
While there are other systems that are more power efficient, these
boxes are very suitable to be running as a tiny cluster. Webserver? No
problem. Mail server? No problem.
So let's have a look at the specifications:
* 4 real cores
* 4 GB RAM
* 1x 120GB SSD (usable: ca. 100GB)
* Gigabit Ethernet
## The offer in detail
The offer is valid for all orders received between 2021-12-06 to
2021-12-24. The monthly price is 100 CHF instead 150 CHF.
The price stays the same until the end of the contract.
You get:
* A dedicated, routed /48 IPv6 network
* A dedicated layer 2 network
* (optional, add on) IPv4 addresses (mapped via NAT64)
* **No setup fee** (instead of regular setup fee of 50 CHF)
* A server powered by 100% hydro power
The fine print:
* Minimum contract duration: 3 months
On order, you get access to the server with Alpine Linux 3.15
installed. You will need to provide your public SSH key for accessing
the device.
The server includes 15TB traffic per month. Additional 30TB traffic
can be added for 75 CHF/month. The server is located in an *IPv6 only*
network. It can reach the IPv4 Internet via outgoing NAT64. If you
need **incoming** IPv4 connectivity, we offer dedicated public IPv4
addresses for 9 CHF/month. They are mapped via NAT64-SIIT
to an IPv6 address of your choice.
The default setup fee of 50 CHF for dedicated servers is removed for
this offers.
The offer is limited to 10 dedicated servers on a first come, first
serve basis.
## The costs in the offer and even more competitve offer
Some of you will be doing the calculation of what it costs for hosting
it yourself. And we want to be as transparent as possible so that you
understand how the price is calculated.
The costs for ungleich consist roughly of:
* The hardware itself (~150~200 CHF)
* The manual work (~150 CHF)
* The support work (~100 CHF)
* The electricity (~5-10 CHF/month)
* The network traffic (~20~90 CHF/month)
Some of these can be optimised with larger quantities, but some of
them are rather static. However you can see that the network traffic
(based on 10~50 Mbit/s average) is one of the bigger parts of the
monthly cost.
For that reason, we offer a second, even more affordable version: if
you commit on using less than 10 Mbit/s on average (still burstable up
to 1000 Mbit/s), we can offer the dedicated APU for 50 CHF/month.
## What if it hardware breaks?
As this is real hardware, hardware failures can occur and they will be
repaired without any extra cost. It is however your responsibility to
inform the Data Center Light team about issues. Response times
according to [your selected SLA level](/u/products/ungleich-sla/).
## How can I start / how can order?
You can order at the
[Data Center Light / Dedicated APU Alpine 3.15](https://datacenterlight.ch/product/dedicated-apu/) or
on [Data Center Light / Dedicated APU Alpine 3.15 10
Mbit/s](https://datacenterlight.ch/product/dedicated-apu-10mbit/).
After the order is confirmed you will get access to the server within 5 working days.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 KiB

View file

@ -0,0 +1,93 @@
_model: product
---
_discoverable: yes
---
_hidden: no
---
title: Black Friday 2021 (Closed)
---
subtitle: Special deals 2021.11.23-11.30
---
headline1: Black Friday
---
headline2: 2021.11.23 - 2021.11.30
---
image: /u/image/cards/blackfriday21.jpg
---
header_background_color: #211C1E
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
## Black Friday
We prepared some exciting deals for the limited time of 2021.11.23 - 2021.11.30.
Get yourself a treat with sustainable technology!
* Deal 1: Get an IPv4 Subscription for 2 years for the price of 1 year
* Deal 2: Get an IPv6 Router(VIIRB, VIWIB, VIGIR) and get 2 years of VPN with it
* Deal 3: 50% Discount for the VPN extension for VIIRB, VIWIB and VIGIR users
---
content1_text:
## Deal 1. IPv4 Address for 2 years for the price of 1.
During Black Friday sales, we offer our IPv4 subscription for 2 years for the price of 1 year!
### About IPv4 Subscription
Our IPv4 Subscription is usable with any wireguard compatible device. Wireguard is a secure and easy to use VPN protocol: it is supported on Linux, BSD, MacOS, and Windows. You can even use wireguard on your mobile phone.
### Order IPv4 Address now and save 144 CHF!
Our IPv4 address is 144 CHF per year. Now you can pay just 144 CHF for 2 year's IPv4 subscription instead of 288 CHF, you save 144 CHF.
The deal is limited to 24 IPv4 addresses.
* Order IPv4 Subscription for 2 years for the price of 1 year
---
content1_image: ipv4-address.jpg
---
content2_text:
## Deal 2. VIWIB, VIGIR, VIIRB, with 2 years of free IPv6 VPN
Everyone who orders ungleich IPv6 routers (VIWIB, VIGIR, VIIRB) during the Black Friday Sales gets a router with 2 years IPv6 VPN included instead of 1 year. Buy a router now, and you get the special deal included automatically.
* [Buy VIWIB](https://ungleich.ch/u/products/viwib-wifi-ipv6-box/)
* [Buy VIGIR](https://ungleich.ch/u/products/vigir/)
* [Buy VIIRB](https://ungleich.ch/u/products/viirb-ipv6-box/)
---
content2_image: ipv6router.jpg
---
content3_text:
## Deal 3. 50% Discount on IPv6 VPN extension for VIIRB, VIWIB, VIGIR users
Do you already have our star product [VIWIB,](https://ungleich.ch/u/products/viwib-wifi-ipv6-box/) [VIIRB,](https://ungleich.ch/u/products/viirb-ipv6-box/) or [VIGIR](https://ungleich.ch/u/products/vigir/)? Now we offer the next year's VPN for your router with 50% discount. Our standard VPN costs 120 CHF per year, but with this deal you can have your current VPN extended for another year for just half the price. Enjoy the IPv6 router and keep your IPv6 VPN uninterrupted!
Offer is valid for VIIRB, VIGIR or VIWIB users.
* Order IPv6 VPN extension for VIIRB, VIWIB, VIGIR with 50% discount
---
content3_image: vigir-extension.jpg
---
description6:
## More Info
* Our IPv6 VPN is running fully on renewable energy and Open Source. You can find more information on it on our [IPv6 VPN page.](https://ipv6vpn.ch)
* Our VIWIB is the mini WiFi Router with a versatile use. You can find more information on it on our [VIWIB product page.](https://ungleich.ch/u/products/viwib-wifi-ipv6-box/)
* Our VIIRB is the world's smalledst IPv6 router box that lets you have IPv6 anywhere, anytime. You can find more information on it on our [VIIRB product page.](https://ungleich.ch/u/products/viirb-ipv6-box/)
* Our VIGIR is the powerful, professional IPv6 router box that lets you do your serious work with IPv6. You can find more information on it on our [VIGIR product page.](https://ungleich.ch/u/products/vigir/)
Any questions, you can drop us a mail to support@ungleich.ch and our team will get back to you as soon as possible! Happy IPv6 Black Friday everyone!

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View file

@ -0,0 +1,107 @@
_model: product
---
_discoverable: yes
---
_hidden: no
---
title: Dedicated December 2021
---
subtitle: Access to dedicated servers (2021-12-01...2021-12-31)
---
headline1: Dedicated Servers
---
headline2: Exclusive Access
---
image: /u/image/cards/dedicated-december.jpg
---
header_background_color: #B61818
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
## Dedicated December Highlights
This December you have the chance to get 1 out of 10
dedicated servers hosted in Data Center Light:
* Real, dedicated hardware
* 24 logical cores
* 48 GB RAM
* 2x 2TB SSD
* Remove access via IPMIView
* Dedicated, routed /48 IPv6 network
* Dedicated layer 2 network
* (optional, add on) IPv4 addresses (mapped via NAT64)
* **No setup fee**
* Minimum contract duration: 3 months
* Powered by 100% hydro power
## The offer in detail
The offer is valid for all orders received between 2021-12-01 to
2021-12-31. The monthly price is 250 CHF. The price stays the same
until the end of the contract.
On order, you get access to an server without operating system
or booted into Alpine Linux via USB stick.
You have remote access (keyboard/mouse/video) via IPMIview (access
protected using Wireguard VPN), which allows you to install an
operating system.
It has power efficient Intel Xeon L5640 CPUs running at 2.27GHz.
You can configure the SSDs in as one operating system disk or in a
software raid.
The supplied power is 100% renewable hydro power.
The server includes 15TB traffic per month. Additional 30TB traffic
can be added for 75 CHF/month. The server is located in an *IPv6 only*
network. It can reach the IPv4 Internet via outgoing NAT64. If you
need **incoming** IPv4 connectivity, we offer dedicated public IPv4
addresses for 9 CHF/month. They are mapped via NAT64-SIIT
to an IPv6 address of your choice.
The default setup fee of 50 CHF for dedicated servers is removed for
this offers.
The offer is limited to 10 dedicated servers on a first come, first
serve basis.
## What can you do with it?
You can use this server to host your own services, virtual machines or
even Kubernetes clusters on it.
You can host your photos and data (f.i. via Nextcloud), run a
community chat (f.i. via Matrix) or host your company website
(f.i. via wordpress) on it.
Or you can deploy your own cluster of virtual machines - maybe even
IPv6 only Kubernetes on top of it?
## What if it hardware breaks?
As this is real hardware, hardware failures can occur and they will be
repaired without any extra cost. It is however your responsibility to
inform the Data Center Light team about issues. Response times
according to [your selected SLA level](/u/products/ungleich-sla/).
## How can I start / how can order?
You can order at the [Data Center Light / Dedicated Server
1](https://datacenterlight.ch/product/dedicated-server-1/) page.
After the order is confirmed you will get access to the server via
wireguard and IPMIView within 5 working days. We will need a public
wireguard key for you to grant you access to your server. You can
already install
[IPMIView](https://www.thomas-krenn.com/en/download/frame.only_content/hide_filter.1/hide_filter_serial.1/product.3133.html)
on your machine.
If you opted for Alpine Linux on a USB stick, you can send us a public
ssh key for direct access.

View file

@ -0,0 +1,113 @@
_discoverable: yes
---
_hidden: no
---
title: ungleich infrastructure availability
---
subtitle: Making your services dependable
---
image:/u/image/cards/infrastructure-availability.jpg
---
headline1: ungleich
---
headline2: Infrastructure
---
headline3: Availability
---
header_background_color: #568BD5
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
## Infrastructure availability
This is version **1.0 of the ungleich infrastructure availability definition**.
Depending on your project or business case you have different
availbility requirements. At ungleich we accomodate the range
from "can be offline for a while" up to "is mission critical".
We orientate ourselves on the It standard availability definitions
"availability per year". The following table gives an overview of
typical availability rates:
```
| % | Accepted downtime / year |
|--------+--------------------------|
| 98 | 175.2h or 7.3 days |
| 99 | 87.6h or 3.65 days |
| 99.9 | 8.76h |
| 99.99 | 0.876h or 52.55 minutes |
| 99.999 | 5.25 minutes |
```
## General availability
If not otherwise specified, the **target availability** for every
service is 99.9%. This availability is **not guaranteed by
default**. However we offer **guaranteed availability** for a range of
our products.
## Guaranteed availability
We can guarantee availability of individual services depending on your
needs. As every customer need and product is individual, you can
[ask for an individual offer](/u/contact/) for your services.
## High Availability Methods
To improve the default availability, we offer a variety of
add-ons. Depending on the booked service, different methods are
applicable. In this section we describe the general methods we offer.
### Redundant storage
By default all data is replicated 3 times accross our decentralised
storage system. This protects against disk failures like a traditional
RAID system does. Note that this does not protect against
unintentional deletion, for this you require a backup.
### Offsite backup
To allow disaster recovery, we offer [offsite backups](../backup/)
for most of our services. The data is stored in a physical different
location so that even physical damage to a data center will allow you
to restore your data.
### Dedicated Internet uplinks and IP blocks
To protect you against DDoS and impacts on our general infrastructure,
we offer dedicated Internet uplinks that are reserved for your
service. This includes a /48 IPv6 address block by default for BGP
announcement. A /24 IPv4 address block for indidivual BGP announcement
can be added at an extra service cost.
### Redundant services / High availability (HA)
We realise high availability (HA) using redundant services. These
services can be placed in the same geographic or different geographic
data centers. Depending on the service architecture we offer
Cold-Standby, Hot-Standby or active-active services.
With different geographic locations separate data storage is included
by default. For services in the same location, an optional separate
data storage is also available.
### Load Balancing
For services that allow multiple backends, we offer load balancing
services to distribute the traffic. This can be combined with
dedicated uplinks per location, indivual IP address blocks and
distributed application deployments in multiple locations. You can
also easily realise [blue green
deployments](https://en.wikipedia.org/wiki/Blue-green_deployment) or
[Canary releases](https://martinfowler.com/bliki/CanaryRelease.html).
## Related pages
* [ungleich SLAs](../ungleich-sla/)
* [ungleich Service Hours](../ungleich-service-hour/)
* [ungleich Support Packages](../ungleich-support-package/)

View file

@ -0,0 +1,135 @@
_discoverable: yes
---
_hidden: no
---
title: ungleich service hours
---
subtitle: Let us solve your challenges
---
image:/u/image/cards/service-hours.jpg
---
headline1: ungleich
---
headline2: Service
---
headline3: Hours
---
header_background_color: #5996CE
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
You can hire ungleich staff for solving your infrastructure,
software development and project management tasks. Below table
summarises our standard rates. For projects exceeding the specified
standard packages, [reach out to us individually](/u/contact/).
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<tr>
<th>Package/Feature</th>
<th>Default rate</th>
<th>Support package</th>
<th>Starter package</th>
<th>Collaboration package</th>
</tr>
<tr>
<th>Hourly Rate (during business hours)</th>
<td>220 CHF/h</td>
<td>210 CHF/h</td>
<td>200 CHF/h</td>
<td>180 CHF/h</td>
</tr>
<tr>
<th>Hours included during business hours</th>
<td>0</td>
<td>2</td>
<td>10</td>
<td>20</td>
</tr>
<tr>
<th>Hourly Rate (outside of business hours)</th>
<td>360 CHF/h</td>
<td>343 CHF/h</td>
<td>327 CHF/h</td>
<td>295 CHF/h</td>
</tr>
<tr>
<th>Hours included (outside of business hours)</th>
<td>0</td>
<td>0</td>
<td>2</td>
<td>5</td>
</tr>
<tr>
<th>Package valid for</th>
<td>on demand</td>
<td>30 days</td>
<td>30 days</td>
<td>60 days</td>
</tr>
<tr>
<th>Discount</th>
<td>0%</td>
<td>4.5%</td>
<td>9%</td>
<td>18%</td>
</tr>
<tr>
<th>Pricing</th>
<td>FREE</td>
<td>500</td>
<td>3'000</td>
<td>5'500</td>
</tr>
</table>
</div>
* Business hours are Mo-Fr, 9-17, excluding Swiss national holidays
* Hours not consumed during the given timeframe are expired.
* All packages are non-refundable
* Discounts available for Open Source and climate related projects
* For long term and bigger projects, ask for an individual quote.
## Related pages
* [ungleich Infrastructure Availability](../ungleich-infrastructure-availability)
* [ungleich SLAs](../ungleich-sla)
* [ungleich Support Packages](../ungleich-support-package)
---
offer1_title: Support Package 500 CHF
---
offer1_text:
* 2 hours included during business hours
* Further hours during business time: 210 CHF/h
* 4.5% discount compared to default hourly rate
* Valid for 30 days
---
offer1_link: https://ungleich.ch/product/support-package-500
---
offer2_title: Starter Package 3'000 CHF
---
offer2_text:
* 10 hours included during business hours
* 2 hours included outside business hours
* Further hours during business time: 210 CHF/h
* 9% discount compared to default hourly rate
* Valid for 30 days
---
offer2_link: https://ungleich.ch/product/starter-package-3000
---
offer3_title: Collaboration Package 5'500 CHF
---
offer3_text:
* 20 hours included during business hours
* 5 hours included outside business hours
* Further hours during business time: 180 CHF/h
* 18% discount compared to default hourly rate
* Valid for 60 days
---
offer3_link: https://ungleich.ch/product/collaboration-package-5500

View file

@ -1,4 +1,4 @@
_discoverable: no _discoverable: yes
--- ---
_hidden: no _hidden: no
--- ---
@ -6,12 +6,30 @@ title: ungleich SLA levels
--- ---
subtitle: ungleich service level agreements subtitle: ungleich service level agreements
--- ---
image:/u/image/cards/sla-levels.jpg
---
headline1: Service
---
headline2: Level
---
headline3: Agreements
---
header_background_color: #61C1C0
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1: description1:
What is the right SLA (service level agreement) for you? At ungleich Our Service Level Agreements (SLAs) define the reachability as well
we know that every organisation has individual needs and resources. as the reaction times. As every customer situation is unique, we allow
Depending on your need, we offer different types of service level customization of the service level per customer.
agreements.
In this document you can find what the default
SLA covers and which additional options you have.
This is **version 1.0** of the ungleich SLA levels.
## The standard SLA ## The standard SLA
@ -19,92 +37,237 @@ If not otherwise specified in the product or service you acquired from
us, the standard SLA will apply. This SLA covers standard operations us, the standard SLA will apply. This SLA covers standard operations
and is suitable for non-critical deployments. The standard SLA covers: and is suitable for non-critical deployments. The standard SLA covers:
* Target uptime of all services: 99.9% * Best effort reaction times
* Service level: best effort * Support via support@ungleich.ch (answered 09:00-17:00 on work days)
* Included for all products * Best effort telephone support
* Support via support@ungleich.ch (answered 9-17 on work days) * Included in all products
* Individual Development and Support available at standard rate of 220 CHF/h
* No telephone support
### Overview of the SLA levels
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<thead>
<tr>
<th>Feature / SLA</th>
<th>Standard SLA</th>
<th>Business SLA</th>
<th>Professional SLA</th>
<th>Professional Plus SLA</th>
<th>Critical Services SLA</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Support via E-Mail</th>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<th scope="row">Guaranteed response time via E-Mail</th>
<td>best effort</td>
<td><a href="#1-business-day">1 business day</a></td>
<td><a href="#4h-business-hours">4h during business hours</a></td>
<td><a href="#4h-extended-business-hours">4h during extended business hours</a></td>
<td><a href="#4h-24x7">4h every day</a></td>
</tr>
<tr>
<th scope="row">Support via telephone</th>
<td>best effort</td>
<td>best effort</td>
<td>Mo-Fr 09:00-17:00</td>
<td>Mo-Fr 06:00-22:00</td>
<td>Mo-Su 00:00-23:59</td>
</tr>
<tr>
<th scope="row">Pricing (CHF/month)</th>
<td>Included for free</td>
<td>450</td>
<td>900</td>
<td>1'800</td>
<td>4'200</td>
</tr>
</tbody>
</table>
</div>
All prices are excluding the [service hours](../ungleich-service-hour).
--- ---
feature1_title: Bronze SLA offer1_title: Business SLA: 450 CHF/month
---
feature1_text:
The business SLA is suited for running regular applications with a
focus of business continuity and individual support. Compared to the
standard SLA it **guarantees you responses within 5 hours** on work
days. You also can **reach our staff at extended** hours.
---
feature2_title: Enterprise SLA
---
feature2_text:
The Enterprise SLA is right for you if you need high availability, but
you don't require instant reaction times from our team.
How this works:
* All services are setup in a high availability setup (additional
charges for resources apply)
* The target uptime of services: 99.99%
---
feature3_title: High Availability (HA) SLA
---
feature3_text:
If your application is mission critical, this is the right SLA for
you. The **HA SLA** guarantees high availability, multi location
deployments with cross-datacenter backups and fast reaction times
on 24 hours per day.
---
offer1_title: Business SLA
--- ---
offer1_text: offer1_text:
* Guaranteed response time within 1 business day
* Target uptime of all services: 99.9% * Efficient support handling with support history
* Service level: guaranteed reaction within 1 business day * Suitable for SME and smaller projects
* Development/Support (need to phrase this well): 180 CHF/h
* Telephone support (8-18 work days)
* Mail support (8-18 work days)
* Optional out of business hours hotline (360 CHF/h)
* 3'000 CHF/6 months
--- ---
offer1_link: https://ungleich.ch/u/contact/ offer1_link: https://ungleich.ch/product/business-sla/
--- ---
offer2_title: Enterprise SLA offer2_title: Professional SLA: 900 CHF/month
--- ---
offer2_text: offer2_text:
* Guaranteed response time 4h during business hours
** Requires High availability setup for all services with separate pricing * Guaranteed reachability via telephone during business hours
* Service level: reaction within 4 hours * Efficient support handling with support history
* Telephone support (24x7 work days) * Suitable when fast response during business day is important
* Services are provided in multiple data centers
* Included out of business hours hotline (180 CHF/h)
* 18'000 CHF/6 months
--- ---
offer2_link: https://ungleich.ch/u/contact/ offer2_link: https://ungleich.ch/product/professional-sla/
--- ---
offer3_title: HA SLA offer3_title: Professional Plus SLA: 1'800 CHF/month
--- ---
offer3_text: offer3_text:
* Guaranteed response time 4h during **extended** business hours
* Uptime guarantees >= 99.99% * Covering most time of the day (16h)
* Ticketing system reaction time < 3h * Guaranteed reachability via telephone during **extended** business hours
* 24x7 telephone support * Efficient support handling with support history
* Applications running in multiple data centers * Suitable when fast response during even outside business hours is required
* Minimum monthly fee: 3000 CHF (according to individual service definition)
Individual pricing. Contact us on support@ungleich.ch for an indivual
quote and we will get back to you.
--- ---
offer3_link: https://ungleich.ch/u/contact/ offer3_link: https://ungleich.ch/product/professional-plus-sla/
---
offer4_title: Critical Services SLA: 4'200 CHF/month
---
offer4_text:
* Guaranteed response time 4h during **every day** (including national holidays)
* Covering the complete day (24h)
* Guaranteed reachability at any time
* Efficient support handling with support history
* Suitable for mission critical services
---
offer4_link: https://ungleich.ch/product/critical-services-sla/
---
description6:
## Services and reaction times in detail
### Business hours
Our reguar business hours are from 09:00-17:00, Monday to Friday, with the
exception of Swiss national holidays.
### Extended Business hours
The extended business hours are from 06:00-22:00, Monday to Friday, with the
exception of Swiss national holidays.
### <a name="1-business-day"></a> 1 business day reaction times
The request will be answered within the next business day. The table
below shows the details for every time of the week.
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<thead>
<tr>
<th>Request received</th>
<th>Answer guaranteed until</th>
</tr>
</thead>
<tbody>
<tr>
<td>Between Monday 09:00-17:00</th>
<td>Tuesday 17:00</th>
</tr>
<tr>
<td>Between Tuesday 09:00-17:00</th>
<td>Wednesday 17:00</th>
</tr>
<tr>
<td>Between Wednesday 09:00-17:00</th>
<td>Thursday 17:00</th>
</tr>
<tr>
<td>Between Thursday 09:00-17:00</th>
<td>Friday 17:00</th>
</tr>
<tr>
<td>Between Friday 17:00 and Monday 09:00</th>
<td>Monday 17:00</th>
</tr>
</tbody>
</table>
</div>
If a work day is a Swiss national holiday it is treated as Friday to
Monday period.
### <a name="4h-business-hours"></a> 4h during business hours reaction times
The request will be answered within the 4h during business hours. The
table below shows the details:
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<thead>
<tr>
<th>Request received</th>
<th>Answer guaranteed until</th>
</tr>
</thead>
<tbody>
<tr>
<td>Between 09:00-13:00 on a work day</td>
<td>Between 13:00-17:00 on the same work day</td>
</tr>
<tr>
<td>Between 13:00-17:00 on a work day</td>
<td>Between 09:00-13:00 on the next work day</td>
</tr>
</tbody>
</table>
</div>
### <a name="4h-extended-business-hours"></a> 4h during extended business hours reaction times
The request will be answered within the 4h during business hours. The
table below shows the details:
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<thead>
<tr>
<th>Request received</th>
<th>Answer guaranteed until</th>
</tr>
</thead>
<tbody>
<tr>
<td>Between 09:00-13:00 on a work day</th>
<td>Between 13:00-17:00 on the same work day</th>
</tr>
<tr>
<td>Between 13:00-17:00 on a work day</th>
<td>Between 09:00-13:00 on the next work day</th>
</tr>
</tbody>
</table>
</div>
### <a name="4h-24x7"></a> Every day 4h response time reaction times
The request will be answered within the 4h independent of the day or
time.
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<tr>
<th>Request received</th>
<th>Answer guaranteed until</th>
</tr>
<tr>
<td>Between 00:00-23:59 every day</th>
<td>Within 4 hours</th>
</tr>
</table>
</div>
### Business language
As our team is very international, our primary business language is
English, secondary language is German. On request, we are also
available in Korean and French.
## Related pages
* [ungleich Infrastructure Availability](../ungleich-infrastructure-availability)
* [ungleich Service Hours](../ungleich-service-hour)
* [ungleich Support Packages](../ungleich-support-package)

View file

@ -0,0 +1,150 @@
_discoverable: yes
---
_hidden: no
---
title: ungleich support packages
---
subtitle: Let us make your life easy
---
image:/u/image/cards/support-packages.jpg
---
headline1: ungleich
---
headline2: support
---
headline3: package
---
header_background_color: #79C161
---
header_text_color: text-light
---
nav_classes: navbar-dark
---
description1:
Every project and every business has invdiual needs in regards to
support reachablity, infrastructure uptime and development and
consultancy efforts.
We allow every project to individually select their
SLA, consultancy packages and availability requirements. Below we have
summarised typical selections from our customers for easy selection.
<div class="table-responsive mt-4">
<table class="table colored-table table-bordered">
<tr>
<th>Package/Feature</th>
<th>Business Light</th>
<th>Business Standard</th>
<th>Business Pro</th>
<th>Business Pro Plus</th>
<th>Critical Services</th>
</tr>
<tr>
<th>Working hour package</th>
<td>Support package</td>
<td>Starter package</td>
<td>Starter package</td>
<td>Collaboration package</td>
<td>Collaboration package</td>
</tr>
<tr>
<th>Working hours included (during business hours/outside
business hours)</th>
<td>2 / 0</td>
<td>10 / 2</td>
<td>10 / 2</td>
<td>20 / 5</td>
<td>20 / 5</td>
</tr>
<tr>
<th>SLA package</th>
<td>Business SLA</td>
<td>Business SLA</td>
<td>Professional SLA</td>
<td>Professional Plus SLA</td>
<td>Critical Services SLA</td>
</tr>
<tr>
<th>Reaction times</th>
<td>1 business day</td>
<td>1 business day</td>
<td>4h during business hours</td>
<td>4h during extended business hours</td>
<td>4h every day</td>
</tr>
<tr>
<th><a href="#availiblity">Targetted Minimum Availability</a></th>
<td>99%</td>
<td>99%</td>
<td>99.9%</td>
<td>99.99%</td>
<td>99.999%</td>
</tr>
<tr>
<th>Pricing (CHF/month)</th>
<td>950</td>
<td>3'450</td>
<td>3'900</td>
<td>7'300</td>
<td>9'700</td>
</tr>
</table>
</div>
## <a name="availiblity"></a> Targetted Minimum Availability
The availability of our services is defined individually depending on
the services booked. Find more information about it on the
[ungleich infrastructure
availability](../ungleich-infrastructure-availability) page.
---
offer1_title: Business Light: 950 CHF/month
---
offer1_text:
* Contains service hours Support package
* Contains Business SLA
---
offer1_link: https://ungleich.ch/product/support-business-light
---
offer2_title: Business Standard: 3'450 CHF/month
---
offer2_text:
* Contains service hours Starter package
* Contains Business SLA
---
offer2_link: https://ungleich.ch/product/support-business-standard
---
offer3_title: Business Pro: 3'900 CHF/month
---
offer3_text:
* Contains service hours Starter package
* Contains Professional SLA
---
offer3_link: https://ungleich.ch/product/support-business-pro
---
offer4_title: Business Pro Plus: 7'300 CHF/month
---
offer4_text:
* Contains service hours Collaboration package
* Contains Professional Plus SLA
---
offer4_link: https://ungleich.ch/product/support-business-pro-plus
---
offer5_title: Critical Services: 9'700 CHF/month
---
offer5_text:
* Contains service hours Collaboration package
* Contains Critical Services SLA
---
offer5_link: https://ungleich.ch/product/support-critical-services
---
description6:
## Related pages
* [ungleich Infrastructure Availability](../ungleich-infrastructure-availability/)
* [ungleich SLAs](../ungleich-sla/)
* [ungleich Service Hours](../ungleich-service-hour/)

View file

@ -140,6 +140,10 @@ Let us know if you want tracked or untracked shipping.
### Price ### Price
**Update 2021-11-01: Back in stock!**
Thank you for waiting, VIIRB is back in stock again!
**The price of the VIGIR is 250 CHF**, including the LTE modem, **The price of the VIGIR is 250 CHF**, including the LTE modem,
6 antennas and the power supply. 6 antennas and the power supply.

View file

@ -270,6 +270,10 @@ for **145 CHF** (203 CHF including the VIIRB).
### Price ### Price
**Update 2021-11-01: Back in stock!**
Thank you for waiting, VIIRB is back in stock again!
**The price of the VIIRB is 58 CHF**. **The price of the VIIRB is 58 CHF**.
If you need a power supply, we can ship it with a If you need a power supply, we can ship it with a

View file

@ -94,6 +94,10 @@ the VIWIB and just get started with IPv6.
### Price ### Price
**Update 2021-11-01: Back in stock!**
Thank you for waiting, VIWIB is back in stock again!
**The price of the VIWIB is 68 CHF**. **The price of the VIWIB is 68 CHF**.
If you need a power supply, we can ship it with a If you need a power supply, we can ship it with a
@ -186,7 +190,7 @@ The autonomous security system set can be added to your VIWIB order for 145 CHF
## More of it ## More of it
If you need more ports, Gigabit support, more RAM and more storage, If you need more ports, Gigabit support, more RAM and more storage,
you can checkout our [Pro IPv6 Box](../pro-ipv6-box). you can checkout our [VIGIR](../vigir/).
If you prefer a smaller device and you do not need wifi, we recommend to If you prefer a smaller device and you do not need wifi, we recommend to
checkout our [VIIRB](/u/products/viirb-ipv6-box/). checkout our [VIIRB](/u/products/viirb-ipv6-box/).

View file

@ -76,7 +76,7 @@ offer1_text:
* **One free IPv6 VPN** included for increased security * **One free IPv6 VPN** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 1-5 ppeople with no additioal appps * Suitable for 1-5 people with no additioal appps
* The cloud will run on a virtual machine with 1 Core, 2 GB RAM, 10 GB SSD, 100 GB HDD * The cloud will run on a virtual machine with 1 Core, 2 GB RAM, 10 GB SSD, 100 GB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)
@ -92,7 +92,7 @@ offer2_text:
* **One free IPv6 VPN** included for increased security * **One free IPv6 VPN** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 1-5 ppeople with no additioal appps * Suitable for 1-5 people with no additioal appps
* The cloud will run on a virtual machine with 1 Core, 2 GB RAM, 10 GB SSD, 500 GB HDD * The cloud will run on a virtual machine with 1 Core, 2 GB RAM, 10 GB SSD, 500 GB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)
@ -108,7 +108,7 @@ offer3_text:
* **One free IPv6 VPNs** included for increased security * **One free IPv6 VPNs** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 5-10 ppeople with 1-2 enable appps * Suitable for 5-10 people with 1-2 enable appps
* The cloud will run on a virtual machine with 2 Core, 4 GB RAM, 10 GB SSD, 500 GB HDD * The cloud will run on a virtual machine with 2 Core, 4 GB RAM, 10 GB SSD, 500 GB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)
@ -124,7 +124,7 @@ offer4_text:
* **Two free IPv6 VPNs** included for increased security * **Two free IPv6 VPNs** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 5-10 ppeople with 1-2 enable appps * Suitable for 5-10 people with 1-2 enable appps
* The cloud will run on a virtual machine with 2 Core, 4 GB RAM, 10 GB SSD, 5 TB HDD * The cloud will run on a virtual machine with 2 Core, 4 GB RAM, 10 GB SSD, 5 TB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)
@ -137,10 +137,10 @@ offer5_title: Cloud L-1 TB @ 76 CHF/month
--- ---
offer5_text: offer5_text:
* **One free IPv6 VPNs** included for increased security * **Two free IPv6 VPNs** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 10-20 ppeople with 3-4 enable appps * Suitable for 10-20 people with 3-4 enable appps
* The cloud will run on a virtual machine with 4 Core, 8 GB RAM, 10 GB SSD, 1 TB HDD * The cloud will run on a virtual machine with 4 Core, 8 GB RAM, 10 GB SSD, 1 TB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)
@ -153,10 +153,10 @@ offer6_title: Cloud L-10 TB @ 256 CHF/month
--- ---
offer6_text: offer6_text:
* **Three free IPv6 VPNs** included for increased security * **Five free IPv6 VPNs** included for increased security
* Datacenter location: Glarus, Switzerland * Datacenter location: Glarus, Switzerland
* Enhanced security by limiting access to only your devices * Enhanced security by limiting access to only your devices
* Suitable for 10-20 ppeople with 3-4 enable appps * Suitable for 10-20 people with 3-4 enable appps
* The cloud will run on a virtual machine with 4 Core, 8 GB RAM, 10 GB SSD, 10 TB HDD * The cloud will run on a virtual machine with 4 Core, 8 GB RAM, 10 GB SSD, 10 TB HDD
* [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/) * [1 time initial setup fee 35 CHF](https://ungleich.ch/product/0carboncloud-setup/)

View file

@ -75,7 +75,7 @@ offer1_text:
* SFTP access * SFTP access
* IPv6 and legacy IP reachable * IPv6 and legacy IP reachable
* Data storage replicated 3 times * Data storage replicated 3 times
* [30 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/) * [35 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/)
* Suitable for bigger websites * Suitable for bigger websites
--- ---
@ -89,7 +89,7 @@ offer2_text:
* SFTP access * SFTP access
* IPv6 and legacy IP reachable * IPv6 and legacy IP reachable
* Data storage replicated 3 times * Data storage replicated 3 times
* [30 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/) * [35 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/)
* Suitable for most websites * Suitable for most websites
--- ---
@ -103,7 +103,7 @@ offer3_text:
* SFTP access * SFTP access
* IPv6 and legacy IP reachable * IPv6 and legacy IP reachable
* Data storage replicated 3 times * Data storage replicated 3 times
* [30 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/) * [35 CHF Setup fee](https://ungleich.ch/product/0carbonwebhosting-setup/)
* Suitable for websites publishing big data * Suitable for websites publishing big data
--- ---

View file

@ -0,0 +1,41 @@
title: Privacy Policy
---
subtitle: ungleich's policy on your privacy
---
description1:
## Introduction
This is version 0.1 of our privacy policy from 2021-10-04.
## Privacy by default
At ungleich we are strong believers of **privacy by default**. That
means: you don't need to opt-in for privacy and you don't need to
opt-out for newsletters or marketing information. Privacy is a big
concern for us and our customers.
## Logging and data submission
By default all our services are configured to a minimum amount of
logging. We cannot claim a **zero log policy**, because for
operational measures (spammers, denial of service attacks, for
billing) we need to log some data.
We however **do not sell your data**. Our business is providing
services, not making money of your information.
## Third party access
We minimise the amount of data that is seen by third parties. At the
moment some of our websites use google analytics (for historic
reasons). We plan to remove this by the beginning of 2022.
Services like our [data storage](/u/products/data-storage/),
[the hosted matrix chat](/u/products/hosted-matrix-chat/),
[zero carbon VPS hosting](/u/products/virtual-machine-hosting/),
[zero carbon chat](/u/products/zero-carbon-chat/) and
[zero carbon cloud](/u/products/zero-carbon-cloud/) do not send any
data to third parties by default. There might be plugins or settings
that allow you to enable communication with third parties, but we do
not configure them by default. Above list is not exhaustive.

1
requirements.txt Normal file
View file

@ -0,0 +1 @@
lektor

View file

@ -1,4 +0,0 @@
The structure of templates should be:
- layout.html: valid for everything
- product.html: valid for all products

10
templates/README.md Normal file
View file

@ -0,0 +1,10 @@
Installation
```
$ pip install lektor
```
The structure of templates should be:
- layout.html: valid for everything
- product.html: valid for all products

View file

@ -98,9 +98,9 @@
</ul> </ul>
<form class="form-inline my-2 my-lg-0" <form class="form-inline my-2 my-lg-0"
action="https://search.ungleich.ch/yacysearch.html" method="get"> action="https://search.ungleich.ch/yacysearch.html" method="get">
<input class="form-control mr-sm-2" type="search" <input class="form-control p-2 mr-sm-2" type="search"
placeholder="Search" name="query" aria-label="Search"> placeholder="Search" name="query" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> <button class="btn btn-outline-success my-2 my-sm-0 btn-sm" type="submit">Search</button>
</form> </form>
</div> </div>
</nav> </nav>

View file

@ -4,6 +4,7 @@
{% block content %} {% block content %}
{% if this.description1 %} {% if this.description1 %}
<section class="section">
<div class="container"> <div class="container">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col-md-12">
@ -11,25 +12,34 @@
</div> </div>
</div> </div>
</div> </div>
</section>
{% endif %} {% endif %}
<section class="section">
<div class="container"> <div class="container">
<div class="row mb-5"> <div class="row">
<div class="col-md-4"> <div class="col-sm-4 col-lg-4 mb-5 mb-lg-0">
<h3 class="font-weight-normal">{{ this.feature1_title }}</h3> <div class="featured-box">
<p class="font-weight-normal">{{ this.feature1_text }}</p> <h3>{{ this.feature1_title }}</h3>
<p class="text-3">{{ this.feature1_text }}</p>
</div> </div>
<div class="col-md-4">
<h3 class="font-weight-normal">{{ this.feature2_title }}</h3>
<p class="font-weight-normal">{{ this.feature2_text }}</p>
</div> </div>
<div class="col-md-4"> <div class="col-sm-4 col-lg-4 mb-5 mb-lg-0">
<h3 class="font-weight-normal">{{ this.feature3_title }}</h3> <div class="featured-box">
<p class="font-weight-normal">{{ this.feature3_text }}</p> <h3>{{ this.feature2_title }}</h3>
<p class="text-3">{{ this.feature2_text }}</p>
</div>
</div>
<div class="col-sm-4 col-lg-4 mb-5 mb-sm-0">
<div class="featured-box">
<h3>{{ this.feature3_title }}</h3>
<p class="text-3">{{ this.feature3_text }}</p>
</div> </div>
</div> </div>
</div> </div>
</section>
{% if this.description2 %} {% if this.description2 %}
<section class="section">
<div class="container"> <div class="container">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col-md-12">
@ -37,6 +47,7 @@
</div> </div>
</div> </div>
</div> </div>
</section>
{% endif %} {% endif %}
{% if this.content1_text %} {% if this.content1_text %}
@ -64,14 +75,14 @@
</div> </div>
{% endif %} {% endif %}
<div class="container"> <div class="container">
<div class="row mb-3"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{% if this.offer1_title and this.offer1_text and this.offer1_link %} {% if this.offer1_title and this.offer1_text and this.offer1_link %}
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer1_title }}</h5> <h5 class="card-title">{{ this.offer1_title }}</h5>
<p class="card-text">{{ this.offer1_text }}</p> <p class="card-text">{{ this.offer1_text }}</p>
<a href="{{ this.offer1_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer1_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -82,7 +93,7 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer2_title }}</h5> <h5 class="card-title">{{ this.offer2_title }}</h5>
<p class="card-text">{{ this.offer2_text }}</p> <p class="card-text">{{ this.offer2_text }}</p>
<a href="{{ this.offer2_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer2_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -93,15 +104,17 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer3_title }}</h5> <h5 class="card-title">{{ this.offer3_title }}</h5>
<p class="card-text">{{ this.offer3_text }}</p> <p class="card-text">{{ this.offer3_text }}</p>
<a href="{{ this.offer3_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer3_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
</div>
<hr/> <hr/>
</div>
{% if this.description4 %} {% if this.description4 %}
<section class="section">
<div class="container"> <div class="container">
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col-md-12">
@ -109,6 +122,7 @@
</div> </div>
</div> </div>
</div> </div>
</section>
{% endif %} {% endif %}
{% if this.content2_text %} {% if this.content2_text %}
@ -159,7 +173,7 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer4_title }}</h5> <h5 class="card-title">{{ this.offer4_title }}</h5>
<p class="card-text">{{ this.offer4_text }}</p> <p class="card-text">{{ this.offer4_text }}</p>
<a href="{{ this.offer4_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer4_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -170,7 +184,7 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer5_title }}</h5> <h5 class="card-title">{{ this.offer5_title }}</h5>
<p class="card-text">{{ this.offer5_text }}</p> <p class="card-text">{{ this.offer5_text }}</p>
<a href="{{ this.offer5_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer5_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -181,7 +195,7 @@
<div class="card-body"> <div class="card-body">
<h5 class="card-title">{{ this.offer6_title }}</h5> <h5 class="card-title">{{ this.offer6_title }}</h5>
<p class="card-text">{{ this.offer6_text }}</p> <p class="card-text">{{ this.offer6_text }}</p>
<a href="{{ this.offer6_link }}" class="btn btn-primary">Order</a> <a href="{{ this.offer6_link }}" class="btn btn-primary btn-sm">Order</a>
</div> </div>
</div> </div>
{% endif %} {% endif %}

View file

@ -3,7 +3,7 @@
{% block subtitle %}{{ this.subtitle }}{% endblock %} {% block subtitle %}{{ this.subtitle }}{% endblock %}
{% block content %} {% block content %}
<div class="section">
<div class="container"> <div class="container">
{% for childpage in this.children %} {% for childpage in this.children %}
@ -63,4 +63,5 @@
</div> </div>
</div> </div>
</div> </div>
</div>
{% endblock %} {% endblock %}

View file

@ -3,4 +3,4 @@ name = ungleich: IPv6 - Linux - FOSS
url = https://ungleich.ch url = https://ungleich.ch
[packages] [packages]
lektor-atom = 0.3 lektor-atom = 0.4.0