Code Monkey home page Code Monkey logo

piccolo's Introduction

Table of contents:

Introduction

piccolo is a linux operating system based on raspios-lite and aims at running personal cloud services on a raspberry-pi device.

Compared to raspios-lite/pi-gen, piccolo:

  • Deactivates audio, bluetooth and wifi capabilities to reduce CPU and memory footprints
  • Activates ssh
  • Creates an admin profile based on the values of a configuration file that must be customized before the system is booted the first time in order to improve security
  • Installs the software packages cloud-init, docker.io, cockpit-dashboard
  • Implements a daily (at 03:00 local time) system upgrade and system reboot to keep the system in perfect security conditions
  • Loads and run the docker images:

Build the disk image

The build-up of piccolo is based on the pi-gen project.

Pre-requisites

Building the disk image

  • Open a terminal session
  • cd path_to_the_piccolo_repository
  • Start a debian virtual session vagrant up
  • Log into the virtual session vagrant ssh
  • Access the build directory cd /vagrant/pi-gen
  • Start the building process sudo ./build-docker.sh
  • When the building process is completed, you should see the following message "Done! Your image(s) should be in deploy/"
  • Log off your virtual session exit
  • Delete the virtual session vagrant destroy

Writing the disk image to the SD card

  • Insert the SD card into your pc
  • Run rpi-imager
  • Select the zipped disk image file, located in pi-gen/deploy
  • Select the SD card
  • Click on the write button
  • Remove the SD card when the writing process is completed

Run the piccolo system

Customizing the configuration (mandatory)

  • Insert the SD card again into your PC
  • Open the "boot" drive
  • Modify the myconfig file by changing the values of the following fields
    • SERVER: name of the server
    • DOMAIN: domain where the server can be reached from the internet
    • ADMIN_USER: profile of the administration user
    • ADMIN_PASSWORD: password of the administration user
  • Save the myconfig file
  • Eject your SD card and remove it from your PC when told so

Starting the raspberry pi server

  • Insert your SD card into your raspberry-pi device
  • If possible, connect your raspberry-pi server to a display (using a HDMI cable) to monitor the boot sequence
  • Switch your raspberry-pi device on
  • Wait at least 5 minutes for the first boot sequence to complete, for the system will apply system upgrades (if any) and load the last versions of several required applications

Accessing the raspberry-pi server for system administration purposes

  • Use a device (PC, tablet, smartphone) that is connected to the same network as the raspberry pi server
  • Open your web navigator and point it to https://value_of_field_SERVER_in_file_myconfig.local:9090
  • A certificate security warning will be displayed because the certificate is auto-signed. Accept the risk and proceed
  • Sign in with the administrator user credentials and check the option "Reuse my password for privileged tasks"

Accessing the nextcloud service

Accessing the wireguard web administration console

  • Open your navigator abd point it to http://value_of_field_SERVER_in_file_myconfig.local:51821

piccolo's People

Contributors

colisee avatar

Watchers

 avatar

piccolo's Issues

[INV-3] - Check if docker images can be pulled into the image

Doing a docker pull fails while building the image.

The main reason I cannot pull a docker image with docker is that it needs a systemd daemon to run and such daemon does not run in a chroot environment, unless you use the system portable service (portablectl)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.