<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Warsaw Hackerspace Hosting Services</title>
    <style type="text/css">
body {
  background-color: #f8f8f8;
  font-family: courier, monospace;
  display: flex;
  flex-direction: column;
  align-items: center;
}
#page {
  max-width: 50em;
  font-size: 1.0em;
  line-height: 1.5em;
}
h2 {
  margin-top: 2.5em;
}
h3 {
  margin-top: 2em;
}
    </style>
  </head>
  <body>
    <div id="page">
      <h1>Warsaw Hackerspace Hosting Services</h1>
      <div style="float: right"><a href="/?lang=pl">PL</a> | <a href="/?lang=en">EN</a></div>
      <p>
        Nine Fives SLA for the masses.
      </p>

      <h2>What is this?</h2>
      <p>
        The <a href="https://hackerspace.pl/about_en">Warsaw Hackerspace</a> is a Non-Profit, Non-Governmental Organization from Warsaw that runs a bunch of infrastructure for its own needs. In order to make back some of our expenses (network connection, cooling, ...), we decided to start renting out some of our services to outside customers. All of the proceeds will go towards the statuatory goals of the Organization: maintaining and expanding our hackerspace, teaching and education, running classes and generally making the world a better place.
      </p>
      <p>
        Give us money, receive rack space or dedicated servers. And most importantly, <b>a warm fuzzy feeling from supporting a hackerspace</b> &lt;3.
      </p>
      <p>
        Remember, we're a Hackerspace. While we try to maintain as high as un uptime as possible, power and Internet interruptions are always an option, as we do not (yet) have any redundancy in place. So yeah, no warranty. Seriously. If we're down for more than 5% of a given month, your bill will be proportionately lowered to match our downtime - we're not monsters, after all.
      </p>
      <h2>Ordering</h2>
      <p>
        Contact us at <b>noc@hackerspace.pl</b> and tell us who you are and what you need. We'll respond with a final quote and our world famous NO WARRANTY, NO SLA, NO NOTHING agreement. What follows are list prices in EUR, <b>net (add 23% VAT unless you're a registered EU company with a VAT number)</b>.
      </p>
      <h2>Colocation</h2>
      <p>
        We can throw your hardware into one of our 42U racks. We'll provide you power and a way to monitor and manage it. Bring your own KVM/iKVM, or rely on lazy remote hands. We measure power usage via a kill-a-watt, and you're billed monthly based on the power you use.
      </p>
      <p>
        <b>What you get</b>:
        <ul>
          <li>19" rack space <i>(we do not accept non-rack hardware unless it's something really cool)</i></li>
          <li>230V AC 50Hz via a C14 plug on a 16A circuit</li>
          <li>1GbE (copper) or 10GbE (SFP+) switch port <i>(includes best effort Internet access)</i></li>
        </ul>
        <b>Pricing</b>: €20 per month per rack unit. €0.25 per KWh.
      </p>
      <h2>Dedicated Servers</h2>
      <p>
        We have some servers that we can rent you out. We'll provide you with a way to manage the power on it, remotely reinstall the operating system. Some of the machines also come with integrated KVM.
      </p>
      <p>
       <h3>BL-BASE</h3>
        A Dell M610 blade server.
        <ul>
          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
          <li>24GB RAM ECC</li>
          <li>2x 140GB SAS <i>(used - use RAID1!)</i></li>
          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
          <li>Hardware RAID controller with BBU(PERC)</li>
          <li>2x Gigabit Ethernet</li>
        </ul>
        <b>Pricing</b>: €45 per month.
      </p>
      <p>
       <h3>BL-64-SSD</h3>
        A souped-up Dell M610 blade server.
        <ul>
          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
          <li>64GB RAM ECC</li>
          <li>2x 480GB consumer MLC SSD</li>
          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
          <li>Hardware RAID controller with BBU (PERC)</li>
          <li>2x Gigabit Ethernet</li>
        </ul>
        <b>Pricing</b>: €55 per month.
      </p>
      <p>
       <h3>BL-64-HDD</h3>
        A further souped-up Dell M610 blade server.
        <ul>
          <li>Xeon L5520 @2.27GHz, 8c/16t</li>
          <li>64GB RAM ECC</li>
          <li>2x 2TB consumer 2.5" HDD</li>
          <li>KVM <i>(power control, console, keyboard, mouse, ISO mount)</i></li>
          <li>Hardware RAID controller with BBU (PERC)</li>
          <li>2x Gigabit Ethernet</li>
        </ul>
        <b>Pricing</b>: €65 per month.
      </p>
      <p>
       <h3>KEKTOP</h3>
        <p>
          Way back when, the Hackerspace acquired a whole bunch a Nettop-class machines that used to display advertising in Warsaw taxicabs. After christening them as 'kektops' (hey, that was before the world went to shit), we have decided to rack them up in a custom enclosure with power management, and turned them into a perfect VPS-class dedicated server.
        </p>
        <p>
          Even though the seem underpowered at first glance, they are fairly capable - much more so than a Raspberry Pi, for instance. They make perfect little servers for hosting a blog or small service. Just make sure to get two for redundancy :).
        </p>
        <ul>
          <li>Intel Atom @1.60GHz, 1c/2t</li>
          <li>2GB RAM</li>
          <li>16GB SSD</li>
          <li>Gigabit Ethernet</li>
        </ul>
        <b>Pricing</b>: €10 per month + Internet.
      </p>
      <h2>Internet Access</h2>
      <p>
        We provide upstream via <a href="https://bgp.wtf/">bgp.wtf/AS204880</a>, which has decent connectivity with Poland and to the world (upstreams are Level 3, Telia, GTT, RETN, DE-CIX). We also have direct peering with Google (AS15169), and are present in KleyReX and LocIX.
      </p>
      <p>
         Currently our main upstream circuit is 1GbE, with plans to upgrade to 10GbE as soon as enough commitment is purchased by customers.
      </p>
      <p>
        As we're a registered ISP, we are governed by laws requiring us to provide LEAs with identifying information about customers if a warrant is served for illegal activity. Thus, we will need to collect such some personal information from you (name, address, phone number). The Hackerspace is under the jurisdiction of Polish law.
      </p>
      <p>
        We have a zero tolerance policy towards spam. Customers not responsive to abuse@ requests will have their contract immediately terminated.
      <p>
        <b>What you get</b>:
        <ul>
          <li>A public IPv4 address and a /64 or /48 of IPv6 addresses</li>
          <li>Reverse DNS</li>
          <li>Speed burstable to wire speed of the switch/machine</li>
        </ul>
        <b>Pricing</b>: €7 for every 10Mbps of Internet bandwidth committment (can be shared across all of your services).
      </p>
      <h2>Extra Features</h2>
      <p>
        Contact us for any extra features, like BGP routing, VLANs, extra addresses, ASN sponsorship, ...
      </p>
    </div>
  </body>
</html>
