What is inside?

gitstorage is based on a single board computer (SBC) which is based on Raspberry Pi. However, the gitstorage SBC is smaller, has fewer connectors and a fixed Ethernet plug. The operating system, the software and the repositories are stored on an SD card. The SD card is inside the housing of the device and cannot be removed without opening the device.

The overall dimensions are similar to a credit card. This makes it easy to install the device in a closet or even under a table. Because there are no moving parts, the device does not generate any noise.

The gitstorage device runs on Armbian Linux. The SD card stores the OS, the software, configuration data and the repositories; the repositories are stored in an encrypted partition. After enabling SSH access, administrators can log into the Linux system and perform additional maintenance tasks from the command line if needed.

Model Specifications

GS-16 GS-64
Dimensions 3.44" × 2.93" × 1.28"
(87.4 mm × 74.3 mm × 32.5 mm)
Weight 2.08 oz (59 g)
Wall mount 4 screws
Ambient temperature 32 °F – 104 °F
(0 °C – 40 °C)
Memory capacity 16 GB 64 GB
Storage for git repos 10.6 GB 58.6 GB
Certifications CE, FCC
Processor H2 quadcore Cortex-A7 with 512 MB RAM
Power supply Standard USB
Connectors 1 × 10/100 MBit/s Ethernet, USB-A, Power (USB Micro-B)
Web interface languages English (US), French, German
Price (MSRP) 299 USD/EUR 399 USD/EUR

Core Software Components

A product like gitstorage is based on a lot of components. Out of those components, the 4 most important components are Linux, git, Duktape and Angular. The software can be updated through the web interface without the need to log in on a shell.

  • Linux
    Linux is the operating system foundation for the device. It provides network access, file systems and runs the gitstorage processes. It comes with numerous tools like tar and bash that are used to perform automated administrative tasks, for example creating backup images.
    The device runs a standard Debian distribution (Armbian 5.30) which can be updated online if needed. gitstorage creates a user account for every user and uses the standard Linux login procedure from the web frontend.
  • git
    git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. gitstorage mostly uses the server backend, but for certain operations also uses the standard command-line git command. The gitstorage software performs the user authentication for HTTP-based traffic.
  • Duktape
    Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. gitstorage uses it to implement the JavaScript backend. Performance-critical tasks like running TLS or handling TCP connections are done using C++, but many complex tasks like handling the REST API are written in JavaScript. gitstorage uses its own memory management to make sure that the service can run for a long time without risking memory fragmentation.
  • Angular 4
    Angular is a JavaScript-based open-source front-end web application framework mainly maintained by Google and by a community of individuals and corporations to address many of the challenges encountered in developing single-page applications. It provides an app-like user experience that works on small and large displays. Even when used from the web browser on mobile phones, users have an app-like experience when using gitstorage.