From 4a4be544dcd53a0833accceb69644869390600f9 Mon Sep 17 00:00:00 2001 From: Jennifer Date: Thu, 16 Aug 2018 14:53:19 -0700 Subject: [PATCH 1/2] removed duplicate files --- CONTRIBUTING.md | 18 --- armbian/borg.md | 88 ----------- armbian/caddy.md | 98 ------------ armbian/elasticbeats.md | 20 --- armbian/gogs.md | 33 ---- armbian/lets_encrypt.md | 177 --------------------- armbian/matrix.md | 33 ---- armbian/nextcloud.md | 262 ------------------------------- armbian/pi_hole.md | 153 ------------------ armbian/pia.md | 237 ---------------------------- armbian/postgres.md | 55 ------- armbian/searx.md | 112 ------------- armbian/syncthing.md | 169 -------------------- armbian/ttrss.md | 108 ------------- armbian/turtl.md | 184 ---------------------- armbian/ui.md | 19 --- armbian/vpn_ac.md | 114 -------------- armbian/vpn_autoconnect.md | 302 ------------------------------------ armbian/wallabag.md | 152 ------------------ for-beginners.md | 107 ------------- hardware_notes.md | 121 --------------- how-to-gitea.md | 118 -------------- preflight.md | 46 ------ screenshots/first-login.png | Bin 45013 -> 0 bytes screenshots/vnc-viewer.png | Bin 105737 -> 0 bytes sosasa-kanban.md | 55 ------- virtualization.md | 208 ------------------------- 27 files changed, 2989 deletions(-) delete mode 100644 CONTRIBUTING.md delete mode 100644 armbian/borg.md delete mode 100644 armbian/caddy.md delete mode 100644 armbian/elasticbeats.md delete mode 100644 armbian/gogs.md delete mode 100644 armbian/lets_encrypt.md delete mode 100644 armbian/matrix.md delete mode 100644 armbian/nextcloud.md delete mode 100644 armbian/pi_hole.md delete mode 100644 armbian/pia.md delete mode 100644 armbian/postgres.md delete mode 100644 armbian/searx.md delete mode 100644 armbian/syncthing.md delete mode 100644 armbian/ttrss.md delete mode 100644 armbian/turtl.md delete mode 100644 armbian/ui.md delete mode 100644 armbian/vpn_ac.md delete mode 100644 armbian/vpn_autoconnect.md delete mode 100644 armbian/wallabag.md delete mode 100644 for-beginners.md delete mode 100644 hardware_notes.md delete mode 100644 how-to-gitea.md delete mode 100644 preflight.md delete mode 100644 screenshots/first-login.png delete mode 100644 screenshots/vnc-viewer.png delete mode 100644 sosasa-kanban.md delete mode 100644 virtualization.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 65d00f5..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,18 +0,0 @@ -# Contributing -We use a modified kanban methodology called SOSASA (Structuring your project for the purposes Of Social Activism and Accessibility) for contributions. You can read about [our adaptation of SOSASA here (link)](sosasa-kanban.md), and creator hoodie aida kitten's complete onboarding article and [detailed SOSASA description here (link)](https://medium.com/@novemberninerniner/the-lifetime-of-an-issue-feature-request-f0ae1210e8c2). - -If you'd like to contribute, welcome!! We are so glad you are here. We hope you will take a moment to read our [code of conduct (link)](code-of-conduct.md) before continuing. - -To contribute, please read [our adaptation of SOSASA here (link)](sosasa-kanban.md), which contains more detail about how you can contribute, then join our [kanban boards (link)](https://kanban.lollipopcloud.solutions/) by signing up for an account and logging in. - -* For documentation contributions, we have a [kanban board for documentation (link)](https://kanban.lollipopcloud.solutions/project/admin-lollipop-documentation/kanban/). - -* For code-related contributions, we have a [kanban board for code (link)](https://kanban.lollipopcloud.solutions/project/admin-lollipop-cloud/kanban/) - -...to read and comment on anything you see, or create a new issue by clicking the `+` sign at the top of the `Brainstorming` column. - -If you already have code or documentation to contribute, our [documentation repository is here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs) and our [code repo is here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/lolipop_lan_cloud). - -Lowering the barrier for contributions is important: we value your input, regardless of your level of experience or area of expertise. If you would rather [contact us directly (link)](https://lollipopcloud.solutions/page/contact/), please do not hesitate to reach out through email or chat. We can also provide assistance walking you through our contribution process if you'd like to learn SOSASA or Gitea. - -Note: by submitting a PR, you agree to your contribution(s) being licensed as described in our [LICENSE.md (link)](LICENSE.md). diff --git a/armbian/borg.md b/armbian/borg.md deleted file mode 100644 index 9bb1224..0000000 --- a/armbian/borg.md +++ /dev/null @@ -1,88 +0,0 @@ -# Borg Backups - -The BETTER backup solution. - -**BE MINDFUL OF RUNNING BORG. IT CAN CAUSE PROBLEMS WITH DISK IOPS AND RAM USAGE. BEST USED WHEN THE MACHINE IS KNOWN TO BE IDLE!!!** - -## Inspiration / Further Reading - -- [https://borgbackup.readthedocs.io/en/stable/installation.html#from-source](https://borgbackup.readthedocs.io/en/stable/installation.html#from-source) - -## Install - -Note this is built using sources (kinda). May take awhile on most arm boards. - -``` bash - -# install build dependencies -apt update -apt install python-setuptools python3-setuptools \ - python3 python3-dev python3-pip python-virtualenv \ - libssl-dev openssl \ - libacl1-dev libacl1 \ - build-essential \ - libfuse-dev fuse pkg-config -pip3 install borgbackup[fuse] - -``` - -## Upgrades - -Per the docs - -> To upgrade Borg to a new version later, run the following after activating your virtual environment: - -```pip install -U borgbackup[fuse]``` - -## Initialize Backup Repo - -*Note: assumes you have a ```/tank``` on external disk* - -``` bash - -cd /tank/backup -borg init --encryption none . # No crypto/auth for speed (see docs for more infos) - -``` - -## Backup Script - -Setup a backup script that backs up everything (**note the excludes**) to the initialized repository. - -Run ```/root/borg_backup.sh``` any time you want to take a backup. - -``` bash - -cat > /root/borg_backup.sh < /root/update_caddy.sh < /etc/caddy/Caddyfile < /etc/unbound/local_zone/caddy.conf < /root/docker/acme.sh/acme.sh < /root/docker/nextcloud.sh < /etc/unbound/local_zone/nextcloud.conf < /etc/caddy/services/nextcloud.conf < 'activity',``` to the file. - -#### Add Cronjob - -In the settings change from ```Ajax``` for scheduled jobs to ```Cron``` and run the following commands on your device. - -This will lessen the page loads and keep the cron job constrained to a reasonable duration. - -``` bash - -cat > /etc/systemd/system/nextcloudcron.service < /etc/systemd/system/nextcloudcron.timer < /root/docker/pi-hole.sh < /etc/NetworkManager/dnsmasq-shared.d/pi-hole.conf < /etc/unbound/local_zone/pi-hole.conf < /etc/caddy/services/pi-hole.conf < /etc/pia/server_list.txt << EOF -us-west.privateinternetaccess.com=PIA - USA (West) -us-east.privateinternetaccess.com=PIA - USA (East) -us-midwest.privateinternetaccess.com=PIA - USA (Midwest) -aus.privateinternetaccess.com=PIA - Australia (Sydney) -austria.privateinternetaccess.com=PIA - Austria -belgium.privateinternetaccess.com=PIA - Belgium -ca-toronto.privateinternetaccess.com=PIA - Canada (Toronto) (East) -ca-vancouver.privateinternetaccess.com=PIA - Canada (Vancouver) (West) -fi.privateinternetaccess.com=PIA - Finland -france.privateinternetaccess.com=PIA - France -germany.privateinternetaccess.com=PIA - Germany -hk.privateinternetaccess.com=PIA - Hong Kong -in.privateinternetaccess.com=PIA - India -japan.privateinternetaccess.com=PIA - Japan -mexico.privateinternetaccess.com=PIA - Mexico -nl.privateinternetaccess.com=PIA - Netherlands -no.privateinternetaccess.com=PIA - Norway -sg.privateinternetaccess.com=PIA - Singapore -spain.privateinternetaccess.com=PIA - Spain -sweden.privateinternetaccess.com=PIA - Sweden -swiss.privateinternetaccess.com=PIA - Switzerland -turkey.privateinternetaccess.com=PIA - Turkey -uk-london.privateinternetaccess.com=PIA - UK (London) -brazil.privateinternetaccess.com=PIA - Brazil -EOF - -``` - -#### Setup NeworkManager Profiles - -Some fancy bash tricks to get the full list of NetworkManager PIA connections imported in one copy/paste. - -*Note: You'll need to fill in ```[your_username]``` and ```[your_password]``` before running this block of commands. - -``` bash - -export PIA_USER="[your_username]" -export PIA_PASSWORD="[your_password]" -while read line; -do -desc=$(echo $line | cut -f2 -d'=') -dns=$(echo $line | cut -f1 -d'=') -file="/etc/NetworkManager/system-connections/$desc" - -cat > "$file" < /root/docker/postgres.sh << EOF -#!/bin/bash - -VERSION="" - -ARCH=\`arch\` - -# Cleanup arch/container image here -if [ \$ARCH == "aarch64" ] -then - echo "64bit arm" - VERSION="arm64v8/postgres:latest" -else - echo "32bit arm" - VERSION="arm32v7/postgres:latest" -fi - -docker pull \$VERSION - -# Cleanup existing container -docker stop postgres -docker rm postgres - -# Re-run/create container with latest image -docker run \\ - --name postgres \\ - --restart unless-stopped \\ - --net docker-private \\ - --ip 172.30.12.12 \\ - -e TZ=UTC \\ - -e DEBUG=1 \\ - -e POSTGRES_PASSWORD=test1234 \\ - -v /var/postgres/data:/var/lib/postgresql/data \\ - \$VERSION -EOF - -chmod a+x /root/docker/postgres.sh - -``` - -## Run Postgres - -Simply execute ```/root/docker/postgres.sh``` to update/run Postgres. diff --git a/armbian/searx.md b/armbian/searx.md deleted file mode 100644 index c76540f..0000000 --- a/armbian/searx.md +++ /dev/null @@ -1,112 +0,0 @@ -# Searx - -Self hosted metasearch. Prevent profiling by major search engines - -## Inspiration / Further Reading - -- [https://asciimoo.github.io/searx/](https://asciimoo.github.io/searx/) -- [https://github.com/asciimoo/morty](https://github.com/asciimoo/morty) -- [https://asciimoo.github.io/searx/user/own-instance.html](https://asciimoo.github.io/searx/user/own-instance.html) - -## Install / Update / Run Script - -Setup a generic script that'll auto update Searx, build a container and launch it. You should only run this script at first launch and/or when you're looking for updates. - -``` bash - -mkdir -p /var/searx -chown root:root /var/searx -mkdir -p /root/docker/searx -git clone https://github.com/asciimoo/searx.git /root/docker/searx/src - -cat > /root/docker/searx/searx.sh << EOF -#!/bin/bash - -cd /root/docker/searx/src -git checkout Dockerfile -git fetch -LATESTTAG=\`git describe --abbrev=0 --tags\` -git checkout \$LATESTTAG - -ARCH=\`arch\` - -# Cleanup arch/container image here -if [ \$ARCH == "aarch64" ] -then - echo "64bit arm" - sed -i 's_alpine:3.5_arm64v8/alpine:3.5_g' Dockerfile -else - echo "32bit arm" - sed -i 's_alpine:3.5_arm32v6/alpine:3.5_g' Dockerfile -fi - -docker build \\ - --file ./Dockerfile \\ - --tag searx/searx:\$LATESTTAG \\ - . - -# Cleanup existing container -docker stop searx -docker rm searx - -# Re-run/create container with latest image -docker run \\ - --name searx \\ - --restart unless-stopped \\ - --net docker-private \\ - --ip 172.30.8.8 \\ - -e TZ=UTC \\ - -e DEBUG=1 \\ - -e BASE_URL=searx.domain.tld \\ - searx/searx:\$LATESTTAG -EOF - -chmod a+x /root/docker/searx/searx.sh - -``` - -## Run Searx - -Simply execute ```/root/docker/searx/searx.sh``` to update/run Gogs. - -## Serving Via Caddy - -``` bash - -cat > /etc/caddy/services/searx.conf < /etc/unbound/local_zone/searx.conf < /var/syncthing/.config/syncthing/config.xml < - - false - true - false - false - 10 - /tank/syncthing - - -EOF -chown syncthing -R /var/syncthing -chgrp syncthing -R /var/syncthing - -``` - -## Install Syncthing - -Grab the latest release of syncthing, drop it in place, setup system service. - -``` bash - -RELEASE=`curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | jq -r .tag_name` -ARCH=`arch` -if [ $ARCH == "aarch64" ] -then - ARCH="arm64" -else - ARCH="arm" -fi - -gpg --keyserver keyserver.ubuntu.com --recv-key D26E6ED000654A3E -mkdir -p /tmp/syncthing -cd /tmp/syncthing -curl -sLO https://github.com/syncthing/syncthing/releases/download/${RELEASE}/syncthing-linux-${ARCH}-${RELEASE}.tar.gz -curl -sLO https://github.com/syncthing/syncthing/releases/download/${RELEASE}/sha256sum.txt.asc -gpg --verify sha256sum.txt.asc -grep syncthing-linux-${ARCH} sha256sum.txt.asc | sha256sum -tar -zxf syncthing-linux-${ARCH}-${RELEASE}.tar.gz -mv syncthing-linux-${ARCH}-${RELEASE}/syncthing /usr/bin/syncthing -chmod a+x /usr/bin/syncthing -mv syncthing-linux-${ARCH}-${RELEASE}/etc/linux-systemd/system/syncthing@.service /etc/systemd/system -systemctl daemon-reload -cd ~ -rm -rf /tmp/syncthing - -``` - -## Adjust firewall to allow syncthing on internal network(s) - -``` bash - -firewall-cmd --permanent --zone=internal --add-port 22000/tcp --add-port 21027/udp -# Allow GUI from docker containers (it'll be proxied by the main web proxy container for ssl purposes) -firewall-cmd --permanent --zone=trusted --add-port 22000/tcp --add-port 21027/udp --add-port 8384/tcp -firewall-cmd --reload - -``` - -## Run Syncthing Via systemd Service - -``` bash - -systemctl enable syncthing@syncthing.service -systemctl start syncthing@syncthing.service - -``` - -## Setup Update Script - -Syncthing has an auto update mechanism. Script it so it can be run at any point to get updates. - -``` bash - -cat > /root/update_syncthing.sh < /etc/unbound/local_zone/syncthing.conf < /etc/caddy/services/syncthing.conf < /root/docker/ttrss.sh << EOF -#!/bin/bash - -ARCH=\`arch\` -HUBIMAGE="" - -# Cleanup arch/container image here -if [ \$ARCH == "aarch64" ] -then - echo "64bit arm" - HUBIMAGE="lsioarmhf/tt-rss-aarch64:latest" -else - echo "32bit arm" - HUBIMAGE="lsioarmhf/tt-rss:latest" -fi - -# Cleanup existing container -docker stop ttrss -docker rm ttrss - -# Re-run/create container with latest image -docker run \\ - --name ttrss \\ - --restart unless-stopped \\ - --net docker-private \\ - --ip 172.30.13.13 \\ - -e TZ=UTC \\ - -e DEBUG=1 \\ - -v /var/ttrss:/config \\ - \$HUBIMAGE -EOF - -chmod a+x /root/docker/ttrss.sh - -``` - -## Run TT-RSS - -Simply execute ```/root/docker/ttrss.sh``` to update/run TT-RSS. - -## Serving Via Caddy - -``` bash - -cat > /etc/caddy/services/ttrss.conf < /etc/unbound/local_zone/ttrss.conf < /root/docker/turtl/src/config/config.yaml <' - invites: 'invites@turtlapp.com' - # TODO: replace this with a long, unique value. seriously. write down a dream - # you had, or the short story you came up with during your creative writing - # class in your freshmen year of college. have fun with it. - secure_hash_salt: "Plaque is a figment of the liberal media and the dental industry to scare you into buying useless appliances and pastes. Now, I've read the arguments on both sides and I haven't found any evidence yet to support the need to brush your teeth. Ever." - -sync: - # how many sync records can a client send at a time? it's a good idea to have - # a limit here, lest a rogue client flood the server with sync items - max_bulk_sync_records: 32 - -plugins: - plugin_location: '/var/www/turtl/server/plugins' - analytics: - enabled: false - email: - enabled: false - premium: - enabled: false - -uploads: - # if set to a path, files will be uploaded to the local filesystem instead of - # S3. otherwise, set to false - local: '/var/www/turtl/server/public/uploads' - # if true, downloading local files will be proxied through the turtl server. - # this avoids needing to set up any CORS config in your favorite webserver, - # but may slightly affect performance on high-demand servers. - local_proxy: true - # if local_proxy is false, this is should be the url path the uploaded files - # are publicly available on - url: 'http://api.turtl.dev/uploads' - -s3: - token: 'IHADAPETSNAKEBUTHEDIEDNOOOOO' - secret: '' - bucket: '' -endpoint: 'https://s3.amazonaws.com' -EOF - -``` - -## Install / Setup - -``` bash - -cat > /root/docker/turtl/turtl.sh < /etc/caddy/services/turtl.conf < /etc/unbound/local_zone/turtl.conf < /etc/autovpn/default - -``` - -## Setup Docker networks to exclude - -``` bash - -# Get network names of ALL docker connections -nmcli con show -echo "[name1],[name2]" > /etc/autovpn/exclude - -``` - -## Setup script that will auto activate VPN - -This will auto-activate whenever NetworkManager says that the network is in a state of ```Connected-Global```. It may take a few minutes to get the whole network online/activated. - -Put the below script at ```/etc/autovpn/autovpn.py``` - -``` python - -#!/usr/bin/env python3 -""" -Copyright 2011 Domen Kozar. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are -permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY DOMEN KOZAR ''AS IS'' AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DOMEN KOZAR OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those of the -authors and should not be interpreted as representing official policies, either expressed -or implied, of DOMEN KOZAR. - -USAGE -===== - -1) clone gist somewhere (eg. /home/user/autovpn/) -2) add to /etc/rc.local: python /home/user/autovpn/autovpn.py "myvpn" 'Auto homenetwork,Auto worknetwork' >> /var/log/autovpn.log& -3) reboot :-) - -CHANGELOG -========= - -0.2 (28.01.2012) ----------------- - -* feature: use logging module -* bug: script would fail if there was no active connection - -0.1 (01.01.2012) ----------------- - -* bug: compatible with NM 0.9, dropped support for 0.8 -* feature: specify networks that vpn is not autoconnected - -KNOWN ISSUES -============ - -* it will always use first active network connection - -""" -import sys -import logging - -from dbus.mainloop.glib import DBusGMainLoop -import dbus -from gi.repository import GObject as gobject - - -logger = logging.getLogger(__name__) -logging.basicConfig( - level=logging.INFO, - filename='/var/log/autovpn.log', - filemode='a', -) - - -class AutoVPN(object): - """Solves two jobs, tested with NetworkManager 0.9.x: - - * if VPN connection is not disconnected by user himself, reconnect (configurable max_attempts) - * on new active network connection, activate VPN - - :param vpn_name: Name of VPN connection that will be used for autovpn - :param ignore_networks: Comma separated network names in NM that will not force VPN usage - :param max_attempts: Maximum number of attempts of reconnection VPN session on failures - :param delay: Miliseconds to wait before reconnecting VPN - - """ - - def __init__(self, vpn_name, ignore_networks='', max_attempts=5, delay=5000): - self.vpn_name = vpn_name - self.max_attempts = max_attempts - self.delay = delay - self.failed_attempts = 0 - self.bus = dbus.SystemBus() - self.ignore_networks = ignore_networks.split(',') - print(self.ignore_networks) - self.activate_vpn() # Auto connect at startup (Listen for StateChanged going forward) - self.get_network_manager().connect_to_signal("StateChanged", self.onNetworkStateChanged) - logger.info("Maintaining connection for %s, reattempting up to %d times with %d ms between retries", vpn_name, max_attempts, delay) - - def onNetworkStateChanged(self, state): - """Handles network status changes and activates the VPN on established connection.""" - logger.debug("Network state changed: %d", state) - if state == 70: - self.activate_vpn() - - def onVpnStateChanged(self, state, reason): - """Handles different VPN status changes and eventually reconnects the VPN.""" - # vpn connected or user disconnected manually? - if state == 5 or (state == 7 and reason == 2): - self.failed_attempts = 0 - if state == 5: - logger.info("VPN %s connected", self.vpn_name) - else: - logger.info("User disconnected manually") - return - # connection failed or unknown? - elif state in [6, 7]: - # reconnect if we haven't reached max_attempts - if not self.max_attempts or self.failed_attempts < self.max_attempts: - logger.info("Connection failed, attempting to reconnect") - self.failed_attempts += 1 - gobject.timeout_add(self.delay, self.activate_vpn) - else: - logger.info("Connection failed, exceeded %d max attempts.", self.max_attempts) - self.failed_attempts = 0 - - def get_network_manager(self): - """Gets the network manager dbus interface.""" - logger.debug("Getting NetworkManager DBUS interface") - proxy = self.bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager') - return dbus.Interface(proxy, 'org.freedesktop.NetworkManager') - - def get_vpn_interface(self, name): - 'Gets the VPN connection interface with the specified name.' - logger.debug("Getting %s VPN connection DBUS interface", name) - proxy = self.bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Settings') - iface = dbus.Interface(proxy, 'org.freedesktop.NetworkManager.Settings') - connections = iface.ListConnections() - for connection in connections: - proxy = self.bus.get_object('org.freedesktop.NetworkManager', connection) - iface = dbus.Interface(proxy, 'org.freedesktop.NetworkManager.Settings.Connection') - con_settings = iface.GetSettings()['connection'] - if con_settings['type'] == 'vpn' and con_settings['uuid'] == name: - logger.debug("Got %s interface", name) - return iface - logger.error("Unable to acquire %s VPN interface. Does it exist?", name) - return None - - def get_active_connection(self): - """Gets the dbus interface of the first active - network connection or returns None. - """ - logger.debug("Getting active network connection") - proxy = self.bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager') - iface = dbus.Interface(proxy, 'org.freedesktop.DBus.Properties') - active_connections = iface.Get('org.freedesktop.NetworkManager', 'ActiveConnections') - if len(active_connections) == 0: - logger.info("No active connections found") - return None - logger.info("Found %d active connection(s)", len(active_connections)) - return active_connections - - def activate_vpn(self): - """Activates the vpn connection.""" - logger.info("Activating %s VPN connection", self.vpn_name) - vpn_con = self.get_vpn_interface(self.vpn_name) - active_cons = self.get_active_connection() - if active_cons is None: - print('active cons is None') - return - - inet_con = None - for active_con in active_cons: - print(active_con) - # check if we have to ignore vpn - proxy = self.bus.get_object('org.freedesktop.NetworkManager', active_con) - con = dbus.Interface(proxy, 'org.freedesktop.DBus.Properties').Get('org.freedesktop.NetworkManager.Connection.Active', 'Connection') - proxy = self.bus.get_object('org.freedesktop.NetworkManager', con) - settings = dbus.Interface(proxy, 'org.freedesktop.NetworkManager.Settings.Connection').GetSettings() - if settings['connection']['id'] not in self.ignore_networks: - print('found valid con') - inet_con = active_con - break - - if inet_con is None: - print('no valid con') - logger.info("Ignored network connections based on settings") - return - - # activate vpn and watch for reconnects - if vpn_con and inet_con: - print('activating vpn') - print(inet_con) - try: - new_con = self.get_network_manager().ActivateConnection( - vpn_con, - dbus.ObjectPath("/"), - inet_con, - ) - proxy = self.bus.get_object('org.freedesktop.NetworkManager', new_con) - iface = dbus.Interface(proxy, 'org.freedesktop.NetworkManager.VPN.Connection') - iface.connect_to_signal('VpnStateChanged', self.onVpnStateChanged) - logger.info("VPN %s should be active (soon)", self.vpn_name) - except dbus.exceptions.DBusException: - # Ignore dbus connections (in case VPN already active when this script runs) - # TODO: Do this handling better; maybe check active/inactive status above and bail if already active? - print('dbus.exceptions.DBusException') - pass - -if __name__ == '__main__': - if len(sys.argv) < 2: - print('usage: autovpn VPN_CONNECTION_NAME ') - print('-> activates vpn if any network connection is active') - print('-> and reconnects VPN on failure') - sys.exit(0) - - # set up the main loop - DBusGMainLoop(set_as_default=True) - loop = gobject.MainLoop() - # TODO: argparse - if len(sys.argv) > 2: - AutoVPN(sys.argv[1], sys.argv[2]) - else: - AutoVPN(sys.argv[1]) - loop.run() - -``` - -## Setup Script - -``` bash - -# Set permissions as required by NetworkManager -chown root:root /etc/autovpn/autovpn.py -chmod 0700 /etc/autovpn/autovpn.py - -``` - -## Setup the script as a systemd service - -``` bash - -cat > /etc/systemd/system/autovpn.service < /root/docker/wallabag/wallabag.sh < /etc/caddy/services/wallabag.conf < /etc/unbound/local_zone/wallabag.conf < storage > removable storage > format. Source: [SD card formatting (link).](https://raspberrypi.stackexchange.com/questions/1446/how-can-i-reformat-my-sd-card-to-use-it-normally-again#comment81498_1446) - -#### Once you've formatted your SD card: - -If you don't already have one, you will also need an application/program to properly prepare your formatted SD card. [Etcher (link)](https://etcher.io/) works on most computers. To use Etcher: Insert the SD card into your computer (using an built-in reader or an external USB reader), load Etcher, select your newly extracted Armbian .img file, select the SD card you want to set up, and click Flash! - -When Etcher is finished, you're ready to insert your Armbian SD card into your Orange Pi. Insert your HDMI cable or serial console, and keyboard or ethernet if you are using it, and then plug in the power cord. The Orange Pi should boot automatically. - -If your board does not boot (the screen is blank or you cannot connect via SSH), but the power light is on and your SD card is properly inserted into the Orange Pi (make sure it clicks into place!) your SD card may not have flashed properly. Repeat the process for formatting the SD card and running Etcher, and try again. - -# Your First Time Booting Armbian - -Now you're reading to turn on your Lollipop device for the first time! - -If you're not using a keyboard, connect your Orange Pi (or the board you're using) with an ethernet cable to your local router and use your development computer to load Terminal (if using a Mac) and run `ssh root@192.168.1.x` (your board's IP address! make sure to use the root@IP_address format or else Terminal will tell the Orange Pi that you're trying to log in with your Mac's username) OR use [PuTTY (link)](https://putty.org/) to open an SSH connection to your Orange Pi. You may need to log into your router's settings to [find the IP address of your Orange Pi (link)](https://www.howtogeek.com/204057/how-to-see-who%E2%80%99s-connected-to-your-wi-fi-network/). - -Both keyboard and ethernet users will continue on the same path here: - -![First login screen](/screenshots/first-login.png) - -At first boot, you will be prompted to log in with the default login (root) and password (1234), and then prompted to change your root password. When you set your root password, make it a good one and don't forget it! Anyone with root access to your computer will have access to everything on that computer, including the ability to make malicious changes. - -Next, you will be prompted to create a new user account and password. This account will have [sudo (link)](https://en.wikipedia.org/wiki/Sudo) privileges, which is just as powerful (and dangerous) as root access, so you'll need another secure password. It is good practice to never login as root, so you'll be using this new user account for everything going forward. - -Once you've created an account, the desktop environment will load, and it's time to start setting things up! - -NOTE: If you are connected via SSH (running without a display or "headless"), you can also install [VNC Viewer (link)](https://www.realvnc.com/) on your development computer, and [set up VNC (Virtual Network Computing) on your Orange Pi (link)](https://forum.pine64.org/showthread.php?tid=794), so you can connect virtually without having to deal with a separate keyboard/monitor/etc setup. This is something you may use many times in the future, so it's worth taking the time to set it up, even if you're currently using a dedicated keyboard and display for your Lollipop. [More information about VNC. (link)](https://en.wikipedia.org/wiki/Virtual_Network_Computing) - -![The view with VNC Viewer](/screenshots/vnc-viewer.png) - -# Base Setup - -At this point, you might be ready to jump into the [Lollipop base setup code (link)](https://git.lollipopcloud.solutions/lollipop-cloud/lolipop_lan_cloud/src/branch/master/docs/armbian/base_setup.md). If you need a little more detail, continue following along here instead. - -If you are sticking with the command line via SSH, these steps will hopefully be straightforward. If you are using your new Lollipop with the desktop environment, you will have to open up a terminal window. - -It's good practice to run `sudo apt update` at the command line to make sure everything is up to date, and you may need to run `sudo apt upgrade` as well (the command line will tell you if there are upgrades but it won't hurt to run it either way). After updating and upgrading, run `systemctl reboot`, give the board a minute or two to reboot, and then reconnect via SSH. - -__Note:__ if you get an error like `perl: warning: Falling back to a fallback locale ("en_US.UTF-8"). -locale: Cannot set LC_CTYPE to default locale: No such file or directory -locale: Cannot set LC_ALL to default locale: No such file or directory`, try the following command: `export LC_ALL="en_US.UTF-8"`. If you continue to get this error, you can edit the /etc/ssh/ssh_config file (see the next paragraph for more detail about file editing, but you will have to do `sudo nano /etc/ssh/ssh_config`) and comment out (add `#` to) the `SendEnv LANG LC_*` line. - - -You will have to edit some files. Nano is a simple built-in text editor, but feel free to use your text editor of choice. Examples here will use Nano. - -You will be disabling auto-updates in order to save bandwidth and time, and to prevent data overages for those with data caps. - -First file to edit: -`sudo nano /etc/apt/apt.conf.d/02periodic` - and change the line ```APT::Periodic::Enable "1";``` to ```APT::Periodic::Enable "0";``` - - Then enter command `control-x` (to exit) and choose `y` to save changes. Hit enter to keep the file name the same, and now you're reading to move on to the next file. - -Second file to edit: `sudo nano /etc/apt/apt.conf.d/20auto-upgrades` and change the line ```APT::Periodic::Update-Package-Lists "1";``` to ```APT::Periodic::Update-Package-Lists "0";``` - -AND change ```APT::Periodic::Unattended-Upgrade "1";``` to ```APT::Periodic::Unattended-Upgrade "0";``` - -(remember to `ctrl-x` and `y` to save your changes). - -Third file to edit: `sudo nano /etc/ssh/sshd_config` and make sure the following is set: `PermitRootLogin no`. This is a longer file, so enter `ctrl-w` to search for `PermitRootLogin`. You may have to `ctrl-w` and `enter` again to find the line you're looking for. Change `yes` to `no` if necessary and then save your changes (`ctrl-x` and `y`). - -Now restart the service with `systemctl restart sshd`. - -# Congratulations! You've installed an entire operating system and completed the base setup! Time to customize your Lollipop! - -Now you're ready to head back to the [README (link)](docs/README.md) and get started on the networking section. - -**Closing suggestion:** It is highly recommended that once you set up networking on your new Lollipop Cloud, that you follow the README's suggestion to install Cockpit. After you install Cockpit, you will be able to configure the rest of your desired Lollipop Cloud features through a web browser on your development (or home) computer. - -_Check and contribute to [the issue tracker (link)](https://kanban.lollipopcloud.solutions/project/admin-lollipop-documentation/kanban) for errors, typos, clarifications, and omissions to improve this documentation. Thanks!_ diff --git a/hardware_notes.md b/hardware_notes.md deleted file mode 100644 index bc1d3e0..0000000 --- a/hardware_notes.md +++ /dev/null @@ -1,121 +0,0 @@ -# Hardware Notes - -Various notes and tidbits that may deserve consideration. - -## USB Storage - -If you're going to run services like NextCloud, Syncthing and/or Samba you will want to consider what kind of USB disk to use. I'd recommend a [Sandisk Cruzer Fit (link)](https://www.sandisk.com/home/usb-flash/cruzer-fit) or [Sandisk Ultra Fit (link)](https://www.sandisk.com/home/usb-flash/ultra-fit-usb) or similar, low power flash drive. Full hard disks that aren't SSD's tend to be power hungry and can cause problems with SBCs. - -## WiFi - -- The author has had decent luck with the [ASUS USB-N13 (link)](https://www.asus.com/us/Networking/USB-N13/) adapter in client mode. Be minful of your 2.4ghz channel setup. If this adapter and your AP share a channel in 2.4ghz this adapter *will* drop packets and/or suffer disconnections - - Sometimes a reboot is necessary to get authentication to work properly after initial setup - - The author has **NOT** tested AP mode -- The author has had very good luck with the [ASUS USB-N53 (link)](https://www.asus.com/us/Networking/USBN53/) in AP mode. *Both* 2.4ghz and 5ghz can used for AP mode at the same time. - - The author has **NOT** tested client mode -- The author has had decent luck with the TP-Link N150 USB WiFi adapter in client mode -- The author could not get the TP-Link N300 USB WiFi adapter to work in client mode - -## Official Boards - -After much testing, discussion, success, failure, and inspiration... we are happy to announce the boards we will officially support! - -We've selected 4 different boards as our primary targets for the Lollipop Cloud project. Our team members will be working with these boards heavily and will prioritize supporting them. The boards were selected for their price ($25-$100 USD), specifications, and ease-of-use, keeping in mind our goal of making self-hosted clouds an accessible reality. - -### Orange Pi PC Plus - -The [Orange Pi PC Plus (product details / link)](http://www.orangepi.org/orangepipcplus/) is a reasonably priced arm32v7 board. This board can be purchased as a full set that includes a board, case, and power supply. It's got enough RAM, CPU, and more to run a full self-hosted cloud for an individual, family, and maybe a little more. - -It has an on-board WiFi chip and on-board ethernet so networking won't be a problem. It has 3 USB ports for additional WiFi adapters or USB disks. It also has a full HDMI connector so you can setup using a USB keyboard and TV/monitor/etc. - -This is our recommended board for deploying a Lollipop Cloud, especially for our beginner users. - -### Orange Pi Plus 2e - -The [Orange Pi Plus 2e (product details / link)](http://www.orangepi.org/orangepiplus2e/) is an arm64v8 board. It packs 2Gb of RAM, 4 core CPU, lots of expansion options, built-in WiFi, built-in ethernet, and more. - -This board can run a self-hosted cloud for an individual, family, or small group. If you're looking for the "big board," this is it. - -### O-Droid HC2 - -The [O-Droid HC2 (product details / link)](https://www.hardkernel.com/main/products/prdt_info.php?g_code=G151505170472) is an expensive board that packs the most computing power of our target boards. We are recommending this board for those who want to build their own "home brew" Synology NAS. - -While not the cheapest option, this should be a reasonable replacement for entry level Synology NAS boxes if you're looking to self-host a NAS + Cloud without using proprietary software. - -### Orange Pi Zero Plus - -The [Orange Pi Zero Plus (product details / link)](http://www.orangepi.org/OrangePiZeroPlus/) is a small, inexpensive arm64v8 board. This board is a great starting point and can be used as a little pocket router with ad blocking, VPN, and more. This is best used as a WiFi hot spot device. It can also function as a very basic cloud but does *NOT* have quite enough RAM to function as a full cloud. - -This is a great choice if you're looking for something pocket sized and/or minimal. - -## Expansion / Hardware Ideas - -### WiFi Antennas - -- [https://www.mouser.com/ProductDetail/?qs=%2fv8iy7V9uiwj65CKT%2f%252b6tQ%3d%3d](https://www.mouser.com/ProductDetail/?qs=%2fv8iy7V9uiwj65CKT%2f%252b6tQ%3d%3d) -- [https://www.mouser.com/ProductDetail/?qs=G9o9YCnxvoZVoyw0A06Ktg%3d%3d](https://www.mouser.com/ProductDetail/?qs=G9o9YCnxvoZVoyw0A06Ktg%3d%3d) -- [https://www.mouser.com/ProductDetail/?qs=WUa1z%2fNV9%252b2lzv2ZS%2f50GQ%3d%3d](https://www.mouser.com/ProductDetail/?qs=WUa1z%2fNV9%252b2lzv2ZS%2f50GQ%3d%3d) -- [https://www.mouser.com/ProductDetail/?qs=RuW%2fu%252bNMQmv6yDroBT8RNQ%3d%3d](https://www.mouser.com/ProductDetail/?qs=RuW%2fu%252bNMQmv6yDroBT8RNQ%3d%3d) -- [https://www.mouser.com/ProductDetail/Antenova/SR4W030-100?qs=sGAEpiMZZMuBTKBKvsBmlN73K%2f2BcYXln6YUd9YVZ3FLX3OerI69PA%3d%3d](https://www.mouser.com/ProductDetail/Antenova/SR4W030-100?qs=sGAEpiMZZMuBTKBKvsBmlN73K%2f2BcYXln6YUd9YVZ3FLX3OerI69PA%3d%3d) -- [https://www.mouser.com/ProductDetail/Antenova/SRF2W021-100?qs=sGAEpiMZZMuBTKBKvsBmlMeP1Lut7uca61hspfdOxQexT8ZJsKeXqw%3d%3d](https://www.mouser.com/ProductDetail/Antenova/SRF2W021-100?qs=sGAEpiMZZMuBTKBKvsBmlMeP1Lut7uca61hspfdOxQexT8ZJsKeXqw%3d%3d) - -### Power / LiPo Batteries - -- [SparkFun mosfet power control (link)](https://www.sparkfun.com/products/12959) -- [Pimoroni On/Off shim (link)](https://www.adafruit.com/product/3581) -- [SparkFun Charger/Booster (link)](https://learn.sparkfun.com/tutorials/sparkfun-5v1a-lipo-chargerbooster-hookup-guide) -- [Power Meter](https://www.sparkfun.com/products/14331) -- [Pimoroni LiPo shim (link)](https://www.adafruit.com/product/3196) - -### Storage - -- [Ableconn mSATA Hat (link)](https://www.amazon.com/dp/B00WQJ8BH2) -- [Ableconn nvme Hat (link)](https://www.amazon.com/dp/B01LZ0LCTU) - -### Displays - -- [Waveshare 4.2 inch e-ink display (link)](https://www.waveshare.com/product/modules/oleds-lcds/e-paper/4.2inch-e-paper-module.htm?___SID=U) -- [Waveshare 2.9 inch e-ink display (link)](https://www.waveshare.com/product/modules/oleds-lcds/e-paper/2.9inch-e-paper-module.htm?___SID=U) -- [Pimoroni e-ink hat (link)](https://www.adafruit.com/product/3743) - -### Input - -- [Waveshare touch keypad (link)](https://www.waveshare.com/product/RPi-Touch-Keypad.htm) -- [Pimoroni touch button hat (link)](https://www.adafruit.com/product/3472) -- [Pimoroni push button shim (link)](https://www.adafruit.com/product/3582) -- [Adafruit display+button hat (link)](https://www.adafruit.com/product/3531) -- [Adafruit joystick+button hat (link)](https://www.adafruit.com/product/3464) -- [Pimoroni display+button hat (link)](https://www.adafruit.com/product/2694) - -### Cell Data - -- [LTE rPi Shield (link)](http://sixfab.com/product/raspberry-pi-3g-4glte-base-shield-v2/) -- [LTE/4G pciE (link)](http://sixfab.com/product/quectel-ec25-mini-pcle-4glte-module/) -- [3G pciE (link)](http://sixfab.com/product/quectel-uc20-mini-pcle-3g-module/) - -### Misc - -- [SparkFun TTL serial usb adapter (link)](https://www.sparkfun.com/products/14050) -- [Adafruit TTL serial usb adapter (link)](https://www.adafruit.com/product/3309) -- [SparkFun Bluetooth Mate Silver (link)](https://www.sparkfun.com/products/12576) -- [Adafruit GPS (link)](https://www.adafruit.com/product/746) -- [Pimoroni mini hat extender (link)](https://www.adafruit.com/product/3182) -- [Pimoroni hat extender (link)](https://www.adafruit.com/product/3742) - -## 3d Printed Cases - -- Pine64 [(source)](https://www.thingiverse.com/thing:1831345) : ```3d_printer_sources/Pine_A64_Two-Parts_case.zip``` -- Orange Pi Zero [Plus] Base [(source)](https://www.thingiverse.com/thing:2776831) : ```3d_printer_sources/Orange_Pi_Zero_-_Minimal_Mount.zip``` -- Orange Pi Zero [Plus] Case [(source)](https://www.thingiverse.com/thing:1939780) : ```3d_printer_sources/Orange_Pi_Zero_Case.zip``` -- Orange Pi Zero [Plus] + Expansion Board Case [(source)](https://www.thingiverse.com/thing:2353879) : ```3d_printer_sources/Orange_Pi_Zero_+_Expansion_Board_Case.zip``` -- Orange Pi Zero [Plus] + NAS Board Case [(source)](https://www.thingiverse.com/thing:2122451) : ```3d_printer_sources/Orange_Pi_Zero_NAS_Board_Case.zip``` -- Orange Pi PC Case (External Mounts) [(source)](https://www.thingiverse.com/thing:2239240) : ```3d_printer_sources/Orange_PI_PC_Case_with_External_mounts_+_M5_mount.zip``` -- Orange Pi PC NAS Case [(source)](https://www.thingiverse.com/thing:2468854) : ```3d_printer_sources/Orange_PI_PC_NAS_Case.zip``` -- Orange Pi One Case [(source)](https://www.thingiverse.com/thing:1447933) : ```3d_printer_sources/OrangePi_One_Case.zip``` -- Orange Pi One NAS Case [(source)](https://www.thingiverse.com/thing:2790266) : ```3d_printer_sources/Orange_Pi_One_NAS_Case.zip``` -- Orange Pi Zero NAS Case (minimal) [(source)](https://www.thingiverse.com/thing:2740032) : ```3d_printer_sources/Orange_Pi_Zero_NAS_minimal.zip``` -- Orange Pi Zero 2+ H5 Case [(source)](https://www.thingiverse.com/thing:2797865) : ```3d_printer_sources/Orange_Pi_Zero_2+_H5_Case.zip``` -- Orange Pi Zero 2 Case [(source)](https://www.thingiverse.com/thing:2626323) : ```3d_printer_sources/Orange_Pi_Zero_2_Case.zip``` -- Orange Pi Plus 2E Case [(source)](https://www.thingiverse.com/thing:2251219) : ```3d_printer_sources/Orange_Pi_plus_2e_case.zip``` -- Orange Pi Plus 2E Case (alt) [(source)](https://www.thingiverse.com/thing:1916113) : ```3d_printer_sources/Orange_Pi_Plus_2E_case_2.zip``` -- Orange Pi Zero Plus2 H3 Case [(source)](https://www.thingiverse.com/thing:2802598) : ```3d_printer_sources/ \ No newline at end of file diff --git a/how-to-gitea.md b/how-to-gitea.md deleted file mode 100644 index cadb4b4..0000000 --- a/how-to-gitea.md +++ /dev/null @@ -1,118 +0,0 @@ -# You don't have to learn git or Gitea to contribute... -If you would like to walk through the git contribution process to submit changes, skip this section and move down to the [cheatsheat](#"Gitea cheat sheet for beginners and the forgetful"). But if you have no interest in expending that much energy, you can skip git entirely and submit a detailed suggestion to our [kanban board (link)](https://kanban.lollipopcloud.solutions/). - -# Gitea cheat sheet for beginners and the forgetful -Below is the basic Gitea workflow, to help you with your contributions. But do not hesitate to reach out to any of the organizers for help! We're happy to walk you through any or all of this, no matter what your experience level. If you've never even heard of Gitea before, we'd love to help you submit your first contribution! - -This document gets wordy because Git is not as welcoming to beginners as we wish it was, but you can do it! And you're not alone! We are just a message or comment away. There are even more resources in the [Bibliography](#Bibliography) at the end, if you want to dive deeper. You may even want to skip this document entirely at first, and see if [Your First Pull Request (link)](https://joshuahunter.com/posts/your-first-pull-request/) more suited to your needs. - -If you need more Git, check out the [Git Book (link)](https://git-scm.com/book/en/v2). - -# Basic Steps For Contributing -These are the general steps, but if you need more information, keep reading. - -* Fork the repository (just once) from [Lollipop Cloud project page (link)](https://git.lollipopcloud.solutions/) -* Clone your fork on your own computer (just once) -* Create a branch for your changes -* Edit, make changes and contributions -* Push those changes to your branch -* Open a merge/pull request in Gitea -* Wait for project coordinator to provide feedback or approve the merge/pull request - -# And now... what to do if you've never done this before - -### Log in to Gitea -If you haven't already, create an account on the [Lollipop Cloud project page (link)](https://git.lollipopcloud.solutions/) and log in. - -### Fork it! (copy the project to your Gitea account) -View the repository you would like to work on (docs or website), and click `Fork` in the upper right corner. You will only have to fork once! - -A fork is an exact copy of the project as it existed at the exact moment you forked it. So when the project updates in the future, you will have to update your code too, but we will talk about that later. - -At this point, you will need a command line client like [PuTTY (link)](https://putty.org/) for Windows users, or the built-in Terminal for MacOS users. - -### Go to (or create) a directory where you'd like your copy of the project to live, and open it. -In PuTTY or Terminal, enter each of the following commands, where "lollipop_project" is the name of directory where you would like to store the clone. - -`mkdir /path/to/lollipop_project` - -`cd /path/to/lollipop_project` - -### Clone (create a local copy) of the project files -View your newly created fork in your web browser and copy the https:// address in the box on the right side of the page. -In your terminal program, enter `git clone https://git.lollipopcloud.solutions/your-username/forked-repository`, with the correct URL. -You are downloading all the project files to your computer! Good work! - -### View your cloned project on your computer -Git will install the project in a new folder. Use the command `ls` to see the name of the new project folder if you are unsure. Open this new folder with -`cd cloned_directory_name` to see what was installed. - -### Add the upstream path (Do this step only once!) -If the master (where you forked FROM) changes, you will have to update your local clone. You will only have to do this step ONE time! - -From your `cloned_directory_name` directory, do this: - -`git remote add upstream https://git.lollipopcloud.soltuions/lollipop_cloud/original_repository.git` (with the original repository URL). - -### Create a branch -The `git checkout` command at the end will create a branch, but this is a good practice for each time you want to create a new branch for contributing: - -`git checkout master` - -`git fetch upstream` - -`git rebase upstream/master` - -`git checkout -b new_branch_name` - -Now the changes you make will be associated with `new_branch_name`. - -### Edit your contributions -Now that the files live locally on your computer, and you have a branch set up for your new contributions, you can edit the files with your favorite editor. Stick with the command line (Vim, Emacs, Nano), or use a text editor like [Atom (link)](https://atom.io/). Be sure to save your changes. - -### Add your changed files to git, to prepare them for uploading -If you added new files to the project, in your terminal you will have to `git add edited-file-name` for each of those new files. - -### Commit your changes -When you're ready, go back to the command line and commit your changes with a short but descriptive comment. -`git commit -m "Updated List of Anthropomorphic Potatoes"` - -### Push your changes to the branch in your fork -When you're really ready, "push" those changes to the original source, which is a request to accept and merge your contributions with the rest of the project. **Note:** A push request and a merge request are the same thing. -`git push -u origin new_branch_name` - -### Create a pull request (AKA merge request) - -Go back to your browser and your forked repository `https://git.lollipopcloud.solutions/your-username/forked-repository` and go to Pull Requests and choose `New Pull Request`. - -There will be two drop-down menus that will probably say `base: master` and `compare: master`. The "base" fork is the original project, NOT your forked version. Under the `compare` menu, choose your `new_branch_name`. Enter a short title for the changes, a description to help reviewers understand your contributions, and click the big `Submit Pull Request` button below your text. - -## Congratulations! You've submitted your first pull request! 🎉 - -The developers will review your changes and work with you on next steps. - -# Troubleshooting - -## What to do when "upstream" changes... -"Upstream" is the name of the original code (not your fork). When it gets updated after you clone or fork, you will have to request a copy of those changes to stay up-to-date. - -### Fetch the changes since you first forked or last fetched changes -In order to be sure you're working off the latest copy of the project, you can fetch the latest changes with `git fetch upstream`. (Note: this can only be done at the command line, not the user interface/URL.) - -Now you have the latest copy of the project in your local directory. Your new changes from this point forward will be stored in a local branch called `upstream/master`. - -Make your edits! Then you can go back to the section [about adding your changed files to git](#Add your changed files to git, to prepare them for uploading). - - -# Bibliography - -* [Atom text editor (link)](https://atom.io/) -* [Git Book (link)](https://git-scm.com/book/en/v2) -* [Git Cheat Sheet (link)](https://github.com/mikeizbicki/ucr-cs100/blob/2015winter/textbook/cheatsheets/git-cheatsheet.md): May be helpful for setting up Git from scratch. -* [Git Cheat Sheet - Advanced (link)](https://github.com/mikeizbicki/ucr-cs100/tree/2015winter/textbook/tools/git/advanced-git) -* [Git Game (link)](https://www.git-game.com/): get serious about Git by gameifying your learning. -* [Oh shit, git! (link)](http://ohshitgit.com/): how to fix a few Git mistakes (we all make them!) -* [PuTTY SSH and telnet client (link)](https://putty.org/) -* [Syncing a fork (link)](https://help.github.com/articles/syncing-a-fork/) -* [Vim Cheat Sheet (link)](http://vimsheet.com/) -* [Your First Pull Request (link)](https://joshuahunter.com/posts/your-first-pull-request/) diff --git a/preflight.md b/preflight.md deleted file mode 100644 index 05d92c7..0000000 --- a/preflight.md +++ /dev/null @@ -1,46 +0,0 @@ -# Preflight - -Some things you may or may not want to consider ahead of time - -## Hardware - -- Orange Pi R1 -- Orange Pi Zero Plus -- Pine64 Plus - - (see [hardware notes](hardware_notes.md) for additional considerations) -- Orange Pi Zero - - (see [hardware notes](hardware_notes.md) for additional considerations) -- Raspberry Pi - - (see [hardware notes](hardware_notes.md) for additional considerations) - -### Offical Support - -Be sure to check OpenWRT/Armbian for your chosen router/boards support status. A number are going to be officially supported while others will have development snapshots available. - -## Domain - -If you want to have an 'official' domain for your device, it's possible and this documentation will cover some of the setup. - -### Registrars - -A couple of good registrars for registering a domain - -- [http://namecheap.com/](http://namecheap.com/) -- [https://uniregistry.com/](https://uniregistry.com/) - -### TLDs (Top Level Domains) - -Some good TLD ideas for a Lollipop device - -- .zone -- .host -- .travel -- .link -- .online -- .net -- .tech -- .club - -### Domain Preflight - -In your chosen registrar you'll need to setup API access if you want to use Let's Encrypt for SSL certificates (recommended). Check with your registrar for necessary information on setup. diff --git a/screenshots/first-login.png b/screenshots/first-login.png deleted file mode 100644 index a9ab249c73d30a7b521b5926137d5e2c86c2ca7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45013 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 diff --git a/screenshots/vnc-viewer.png b/screenshots/vnc-viewer.png deleted file mode 100644 index dd4c8c7e4861df1bea4e54ef9a02d26e058d18c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105737 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%0A?B+teH%)_PcU0XaIfnor5$jrV{* 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
    k0An)s1$z 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 $outfile" - docker save -o ${outfile}.tar $repo -done - -``` - From 8a9781dd8d180e74175c11c13ad3f0a15b62a9e7 Mon Sep 17 00:00:00 2001 From: jmf Date: Sun, 7 Oct 2018 14:50:17 -0700 Subject: [PATCH 2/2] changed ubuntu for debian where applicable to reflect current setup --- armbian/chrony.md | 1 + armbian/docker.md | 1 + services/syncthing.md | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/armbian/chrony.md b/armbian/chrony.md index 0a1df7e..fd0fdcb 100644 --- a/armbian/chrony.md +++ b/armbian/chrony.md @@ -4,6 +4,7 @@ Setup alternative ntp that does well with systems that may or may not always be ## Inspiration / Further Reading +- [https://salsa.debian.org/debian/chrony](https://salsa.debian.org/debian/chrony) - [https://wiki.archlinux.org/index.php/Chrony](https://wiki.archlinux.org/index.php/Chrony) - [https://insights.ubuntu.com/2018/04/09/ubuntu-bionic-using-chrony-to-configure-ntp](https://insights.ubuntu.com/2018/04/09/ubuntu-bionic-using-chrony-to-configure-ntp) - [http://manpages.ubuntu.com/manpages/trusty/man5/chrony.conf.5.html](http://manpages.ubuntu.com/manpages/trusty/man5/chrony.conf.5.html) diff --git a/armbian/docker.md b/armbian/docker.md index c1284fa..f8c2c98 100644 --- a/armbian/docker.md +++ b/armbian/docker.md @@ -5,6 +5,7 @@ Containerized services for easy deployment and updates. ## Inspiration / Further Reading - [https://docs.docker.com/install/](https://docs.docker.com/install/) +- [https://docs.docker.com/install/linux/docker-ce/debian/](https://docs.docker.com/install/linux/docker-ce/debian/) - [https://docs.docker.com/install/linux/docker-ce/ubuntu/](https://docs.docker.com/install/linux/docker-ce/ubuntu/) - [https://blog.alexellis.io/get-started-with-docker-on-64-bit-arm/](https://blog.alexellis.io/get-started-with-docker-on-64-bit-arm/) diff --git a/services/syncthing.md b/services/syncthing.md index 93085df..8dcdb8b 100644 --- a/services/syncthing.md +++ b/services/syncthing.md @@ -1,4 +1,4 @@ -# Syncthing +debian# Syncthing A very simple way to setup/run Syncthing in a container. This approach will also update to the latest syncthing releases if available. @@ -59,7 +59,7 @@ else ARCH="arm" fi -gpg --keyserver keyserver.ubuntu.com --recv-key D26E6ED000654A3E +gpg --keyserver keyserver.debian.com --recv-key D26E6ED000654A3E mkdir -p /tmp/syncthing cd /tmp/syncthing curl -sLO https://github.com/syncthing/syncthing/releases/download/${RELEASE}/syncthing-linux-${ARCH}-${RELEASE}.tar.gz