linux-image-manager/README.md

115 lines
5.0 KiB
Markdown

# Core System
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](./LICENSE.txt) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/6e66409513d7451b949afbf0373ba71f)](https://www.codacy.com/manual/KevinFrantz/core-system?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=KevinFrantz/core-system&amp;utm_campaign=Badge_Grade) <!--[![Travis CI](https://travis-ci.org/KevinFrantz/core-system.svg?branch=master)](https://travis-ci.org/KevinFrantz/core-system)-->
## Goal
The goal is to never setup and configure a system manual again or to care about loosing passwords and important data. Instead the whole process **SHOULD** be automatized.
## Description
This repository contains scripts to set up an working client system, maintain it and to save all important and configuration data on an USB stick. The data is stored encrypted with [EncFS](https://en.wikipedia.org/wiki/EncFS).
It's adapted to the needs of Kevin Veen-Birkenbach. Feel free to modularize it and to adapt it to your needs.
![Empty Core System Screen](./.meta/core-system-screenshot.png)
<sub>*Core System* changes the wallpaper every day to the [Astronomy Picture of the Day](https://apod.nasa.gov/apod/). This wallpaper is from the 2019-10-07 and shows Jupiter with the shadow of his moon Io. </sub>
## Core System Norm
This software and compatible software **MUST** adapt to the ["Core System Norm"](./CORE_SYSTEM_NORM.md).
## Requirements
This script is optimized for a [Manjaro Linux](https://manjaro.org). It's recommended to encrypt the hard drive with [LUKS](https://en.wikipedia.org/wiki/Linux_Unified_Key_Setup) if the computer isn't shared.
## System
### Desktop
The System allows to use a [GNOME desktop](https://www.gnome.org/?) or a [Xfce](https://www.xfce.org/) desktop.
Depending on the desktop environment you have different functionalities.
#### GNOME
##### Key Bindings
The following *Core System* specific key bindings exist:
|Combination |Result |
|------------|------------------------------------|
|Ctrl+Alt+A |Opens Atom |
|Ctrl+Alt+C |Opens the capture\screenshot dialog |
|Ctrl+Alt+E |Opens Eclipse |
|Ctrl+Alt+F |Opens Firefox |
|Ctrl+Alt+K |Opens KeePassXC |
|Ctrl+Alt+R |Opens Rhyhtmbox |
|Ctrl+Alt+S |Imports data to core system |
|Ctrl+Alt+T |Opens a terminal |
|Ctrl+Alt+V |Opens VLC player |
### User Data
Right now the software expects that the *Core System Owner* has on all systems the same username. By executing the *import script* it automatic backups the application configuration data, ssh keys and other important data which is saved in well defined configuration files and folders.
### Functions
| Order | Description |
|---|---|
| ```bash ./scripts/system-setup.sh``` | Setup the customized software on the system on which you execute it. |
| ```bash ./scripts/backup.sh``` | Executes all setup scripts. |
| ```bash ./scripts/import-data-from-system.sh``` | Import data from the host system.|
| ```bash ./scripts/export-data-to-system.sh``` | Export data to the host system.|
| ```bash ./scripts/unlock.sh``` | Unlock the stored data.|
| ```bash ./scripts/lock.sh``` | Lock the stored data |
| ```bash ./scripts/pull-local-repositories.sh``` | Pulls all local repositories branches |
| ```bash ./scripts/pushs-local-repositories.sh``` | Pushs all local repositories branches |
| ```encfsctl passwd .encrypted``` | Change the password of the encrypted folder. |
# Raspberry Pi sdc tools
This repository contains some shell scripts to install Arch Linux for the Raspberry Pi on a SD-Card and to backup a SD-Card.
## Todo
- Implement ssh configuration
- Implement wifi automation
## Setup
### SD-Card
#### Guided
To install a Linux distribution manually on a SD card type in:
```bash
bash ./sd_setup.sh
```
#### Piped
To pase the configuration to the program use this syntax:
```bash
(
echo "$USER" # | The username
echo "mmcblk1" # | The device
echo "3" # | The raspberry pi number
echo "arch" # | The operation system
echo "n" # | Force image download
echo "n" # | Transfer image
#echo "n" # ├── Overwrite device before copying
echo "test12345" # | The user password
echo "test12345" # | The root password
echo "example-host" # | The hostname
echo "y" # | Setup Wifi on target system
)| sudo bash ./sd_setup.sh
```
### System
#### Arch
```bash
pacman-key --init
pacman-key --populate archlinuxarm
install -m640 /etc/netctl/examples/wireless-wpa domo-de-kosmopolitoj-wpa
nano domo-de-kosmopolitoj-wpa
netctl start domo-de-kosmopolitoj-wpa
netctl enable domo-de-kosmopolitoj-wpa
```
#### Ubuntu\\Debian
```bash
sudo apt update
sudo apt upgrade
```
## Backup
To backup a SD card type in:
```bash
bash ./sd_backup.sh
```
## License
The ["GNU GENERAL PUBLIC LICENSE Version 3"](./LICENSE.txt) applies to this project.