Browse Source

Add gpg signatures to page footers and signed page content -- kmn signing key used

pull/16/head
KemoNine 6 months ago
parent
commit
d105985869
Signed by: KemoNine <kemonine@lollipopcloud.solutions> GPG Key ID: 9D79FBF661EC6779

+ 1
- 0
gitconfig/README View File

@@ -0,0 +1 @@
1
+Borrowed from https://github.com/jmcs/python-gitconfig

+ 102
- 0
gitconfig/__init__.py View File

@@ -0,0 +1,102 @@
1
+#!/usr/bin/env python
2
+# -*- coding: utf-8 -*-
3
+
4
+from collections import MutableMapping
5
+import subprocess
6
+
7
+
8
+class GitConfig(MutableMapping):
9
+
10
+    """
11
+    Simple wrapper around git config
12
+    """
13
+
14
+    def __init__(self, level='local'):
15
+        """
16
+        :param level: where to store the configuration keys. Can be global, local or system see "man git config"
17
+        """
18
+
19
+        if level not in ['global', 'local', 'system']:
20
+            raise ValueError('Level has to be local, global or system')
21
+        self.level = level
22
+
23
+    def __iter__(self):
24
+        """
25
+        Iterate over git config keys
26
+        """
27
+
28
+        try:
29
+            cmd = ['git', 'config', '--list', '-z']
30
+            lines = subprocess.check_output(cmd, universal_newlines=True).split('\0')
31
+            keys = (line.split()[0] for line in lines if line)
32
+            return keys
33
+        except subprocess.CalledProcessError:
34
+            return []
35
+
36
+    def __contains__(self, key):
37
+        try:
38
+            self[key]
39
+            return True
40
+        except KeyError:
41
+            return False
42
+
43
+    def __delitem__(self, key):
44
+        """
45
+        Equivalent to 'git config --unset key'
46
+        """
47
+
48
+        try:
49
+            cmd = ['git', 'config', '--unset', key]
50
+            return subprocess.check_call(cmd, universal_newlines=True)
51
+        except subprocess.CalledProcessError:
52
+            raise KeyError
53
+
54
+    def __getitem__(self, key):
55
+        """
56
+        Equivalent to 'git config --get key'
57
+        """
58
+
59
+        try:
60
+            cmd = ['git', 'config', '--get', key]
61
+            return subprocess.check_output(cmd, universal_newlines=True).strip()
62
+        except subprocess.CalledProcessError:
63
+            raise KeyError
64
+
65
+    def __len__(self):
66
+        """
67
+        Counts number git config keys
68
+        """
69
+
70
+        try:
71
+            cmd = ['git', 'config', '--list', '-z']
72
+            lines = subprocess.check_output(cmd, universal_newlines=True).split('\0')
73
+            # the last line is empty so doesn't count
74
+            return len(lines) - 1
75
+        except subprocess.CalledProcessError:
76
+            return 0
77
+
78
+    def __setitem__(self, key, value):
79
+        """
80
+        Equivalent to git config --LEVEL key value
81
+        """
82
+
83
+        level = '--' + self.level
84
+        try:
85
+            cmd = [
86
+                'git',
87
+                'config',
88
+                level,
89
+                key,
90
+                str(value),
91
+            ]
92
+            subprocess.check_output(cmd, universal_newlines=True).strip()
93
+        except subprocess.CalledProcessError as e:
94
+            if e.returncode == 1:
95
+                raise ValueError
96
+            elif e.returncode == 2:
97
+                print(cmd)
98
+                raise KeyError
99
+            else:
100
+                # I don't know what happened to get here, so just raise the error
101
+                raise
102
+

BIN
gitconfig/__pycache__/__init__.cpython-36.pyc View File


+ 74
- 0
sign_pages.py View File

@@ -0,0 +1,74 @@
1
+#!/usr/bin/env python3
2
+
3
+import getpass
4
+import gitconfig
5
+import os
6
+import subprocess
7
+import sys
8
+
9
+# Find full path to an executable
10
+# From https://stackoverflow.com/questions/377017/test-if-executable-exists-in-python
11
+def which(program):
12
+    import os
13
+    def is_exe(fpath):
14
+        return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
15
+
16
+    fpath, fname = os.path.split(program)
17
+    if fpath:
18
+        if is_exe(program):
19
+            return program
20
+    else:
21
+        for path in os.environ["PATH"].split(os.pathsep):
22
+            exe_file = os.path.join(path, program)
23
+            if is_exe(exe_file):
24
+                return exe_file
25
+
26
+    return None
27
+
28
+# Figure out which gpg is in use (gpg2 on older Ubuntu systems, gpg == gpg2 on newer Ubuntu installs)
29
+gpg_exe = which('gpg2')
30
+if gpg_exe is None:
31
+    gpg_exe = which('gpg')
32
+if gpg_exe is None:
33
+    print('GPG executable not found!')
34
+    sys.exit(1)
35
+
36
+# Figure out which GPG signing key has been configured
37
+#     Fallback to main CI / Jenkins signing key if none configured
38
+ci_key = '6D9BEDF7EE7B1D30'
39
+signing_key = None
40
+config = gitconfig.GitConfig()
41
+try:
42
+    signing_key = config['user.signingkey']
43
+except:
44
+    signing_key = ci_key
45
+print('Usinging signing key: %s' % signing_key)
46
+
47
+# Get password for signing key to avoid excessive prompts
48
+key_pw = getpass.getpass('Please enter the signing key password: ')
49
+
50
+# Walk the content directory (where our site files live) looking for files to sign
51
+rootDir = './content'
52
+outDir = './static/gpg/sigs'
53
+excludes = []
54
+for dirName, subdirList, fileList in os.walk(rootDir):
55
+    print('Processing: %s' % dirName)
56
+    sigDir = os.path.abspath(os.path.join(outDir, dirName))
57
+    if not os.path.isdir(sigDir):
58
+        print('\tCreating sigDir: %s' % sigDir)
59
+        os.makedirs(sigDir)
60
+    for fname in fileList:
61
+        if fname in excludes:
62
+            continue
63
+        print('\tSigning: %s' % fname)
64
+        p = subprocess.Popen([gpg_exe, 
65
+            '--batch', 
66
+            '--passphrase-fd', '0', 
67
+            '--pinentry-mode', 'loopback', 
68
+            '--local-user', signing_key, 
69
+            '--clear-sign', '--armor', 
70
+            '--output', os.path.abspath(os.path.join(sigDir, fname + '.asc')),
71
+            os.path.abspath(os.path.join(dirName, fname))
72
+        ], stdin=subprocess.PIPE)
73
+        p.communicate(input=str.encode(key_pw))
74
+

+ 38
- 0
static/gpg/sigs/content/_index.md.asc View File

@@ -0,0 +1,38 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+# What is the Lollipop Cloud project?
5
+
6
+The Lollipop Cloud project is an attempt to make hosting personal internet services such as a website, contact list, remote file storage, or a calendar more accessible to users through open source technology and ARM Computing. It allows for anyone with an ARM computer to host their own services.
7
+
8
+### What does that mean?
9
+
10
+If the service you wish to utilize, be it a website, contact list, calendar or file storage, was a Lollipop, the connection to the internet it works over would be the stick you hold it with, the candy would be the ARM computer board that sends and receives data, and the Lollipop project would be the wrapper that protects the candy, preserves it, and shapes it.
11
+
12
+### More Details
13
+
14
+We have [an expanded description of the project and what we are doing here (link)](/page/what-is-lollipop-cloud).
15
+
16
+# Documentation
17
+
18
+Full documentation on [how to create a Lollipop Cloud is available here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs). The linked documentation is the gateway into our project and details how to create, deploy and maintain a Lollipop Cloud.
19
+
20
+# Getting Involved
21
+
22
+If you'd like to contribute to the Lollipop Project we welcome the help. [Details on different ways to help can be found here (link).](/page/contributing)
23
+-----BEGIN PGP SIGNATURE-----
24
+
25
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyeoACgkQnXn79mHs
26
+Z3lo7BAAs0lPFSWcP5hkm+TzWKMUNLadqN31iMek2rLqZws98nkNap44Ksk5J9Sy
27
+Mtz6dUyAfrRFoBHuPVlgHkkZ5qsDpIP27DIvBBhTnh8F5u6FfsFGX5/G+BX8OBCK
28
+16A/jIn/J4cbBWeuFfW4bLITS5oIpup99nR7TBs402JI1Qx5ZsJBWAQGRhL90WWv
29
+b+WHB4idfUHbUO3umroPA8FmWsz5iPtaL24cY8uSgxRtUS4uDZdoWj+o+/6pIxjW
30
+Ksj01gkIpaE6FRtpeLb/rcGKGdiUMU5LTlujeeqTxNQr4WboxtHsV2quXxmRjUgv
31
+J4yGGGRiq4ewaqsaumcj+o0BPVZyXQCLCiEDI4o3NGs+BXttIQHqpApuUrHX56ta
32
+Owbu8ZkPEQu32ewfwttOGY2fxiHABchaEcZI+tXd3uUaAAZHvmutYSzgQ8F0q34Q
33
++PrwL8LpJez30qMdJRTHrjCkqwmtxBtmC8/D0ilT5aXhniAmA36AWD7tS61Af4pP
34
+VXaCzDgxhNJQa1avPQHZ05AV2uQoLntx1uhzBhDlNDCuAQEoCvRl8TxeO5+uttpE
35
+eDYggunOBaPWjCdOfwpBltPiS2DGPgg5twGx1lkvcNH6emHaMvWfC+MdfB9lr2TH
36
+Dgn6Lc4dIcBXGas7Rue3INwnDmtJRbMwb7URQZCmyhqNfKulV6A=
37
+=oUE3
38
+-----END PGP SIGNATURE-----

+ 81
- 0
static/gpg/sigs/content/page/coc.md.asc View File

@@ -0,0 +1,81 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: Code of Conduct
6
+subtitle: As of 2018/07/31
7
+- ---
8
+
9
+# Lollipop Project Code of Conduct
10
+
11
+This is a snapshot of our Code of Conduct as of ```2018/07/31```. A current version can always be found in our documentation sources [here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/raw/branch/master/code-of-conduct.md).
12
+
13
+## Our Pledge
14
+
15
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity or expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion (or lack thereof), or sexual orientation.
16
+
17
+We invite all those who participate in the Lollipop Project to join us in creating a safe, welcoming, and positive experience for everyone.
18
+
19
+## Our Standards
20
+
21
+Examples of behavior that contributes to creating a positive environment include:
22
+
23
+* Using welcoming and inclusive language, including community members' personal pronouns
24
+* Being kind
25
+* Showing consideration for other community members
26
+* Being respectful of differing viewpoints and experiences
27
+* Gracefully accepting constructive criticism
28
+* Focusing on what is best for the community
29
+
30
+Examples of unacceptable behavior by participants include:
31
+
32
+* Violence, threats of violence, or violent language directed against another person or marginalized group
33
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
34
+* Trolling, insulting/derogatory comments, and personal or political attacks, particularly those directed towards marginalized groups or identities
35
+* Public or private harassment, stalking, or intimidation
36
+* Publishing others' private information, such as a physical or electronic address, without explicit permission ("doxing")
37
+* Other conduct which could reasonably be considered inappropriate or harmful in a collaborative setting
38
+
39
+## Our Responsibilities
40
+
41
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
42
+
43
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
44
+
45
+Project maintainers are held to a higher standard than other community members. If a maintainer creates an inappropriate situation, they should expect less leeway than others.
46
+
47
+## Scope
48
+
49
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
50
+
51
+## Enforcement
52
+
53
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at cloud@lollipop.holdmybeer.solutions or other communication means listed on the [Lollipop Project contact page (link)](https://lollipop.holdmybeer.solutions/page/contact/). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
54
+
55
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
56
+
57
+## Final Thoughts
58
+
59
+In this community we strive to go the extra step to look out for each other. Don’t aim to be technically unimpeachable, try to be your best self. In particular, avoid being deliberately hurtful or offensive; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely.
60
+
61
+We are here to build an open, welcoming, and forgiving environment. We strive to ensure members can learn, grow, and contribute to a great project.
62
+
63
+## Attribution
64
+
65
+This Code of Conduct is adapted from the [Contributor Covenant version 1.4 (link)](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html), [Rust’s Code of Conduct](https://www.rust-lang.org/conduct.html), and the [Citizen Code of Conduct](http://citizencodeofconduct.org/).
66
+-----BEGIN PGP SIGNATURE-----
67
+
68
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpygwACgkQnXn79mHs
69
+Z3mWDw/9HlXzlbK8pfIfHL2psI88yVYadypi2Di6PPgqEPR8/C3bNEzpRNjFfbys
70
+MNV2lZxvYEBhwpSWDxw8dqd7uJ5/buCS2sZ9z4eNbXG5KCnStDD4oCfN7i926Xhr
71
+H2zUGgXrVkSHUwGormWHT7vpFU+SxKdlca0mdKfF4PTnB9BVGJlGpgpGcR/ibVqQ
72
+S+kryJA6b0Cqcx0V1kCOYRHe0WLhjOzDKnb1fIFIGSOmFeKBaF4Jxj+h4vLQYoVB
73
+nT8EAXeGn/PV56wsKHqzyRQRhCWraumv4BbSh1rCVhVBB0/qxiH6UeS6QWy6Y2bD
74
+YOMf3EreZd3Dg/xsRPc/XvsdeNC8JFrnxGYFLTha3yE3fZGdjadwS0G+cVsFV21i
75
+pCokPpSp4S0XAixUwzGfNMDmXfWnAmXneOLPwBtMNNbRrLKUTV33SrYdwgacSO9X
76
+YIdM1/5Nw++va2PF0dsW+7Q+Xc6PujwDbpnDi6+Wko0jqsJC4EQm2AM/N7J3I5R3
77
+/UfLSUCiH5liEhbdQymgF8XhL35h+kALmYGPzJSZhauuOdb9EE7/qAh7NrXk9jFT
78
+gs9uscN7MEkBR48i+ZOg/iid6z1aTa0aJhh8rs2h/3DGn+lC5Y3CoKarT3ofXH9D
79
+k89we6+kTAGisvddXxTXUvHE8wYXo9uDil5Zrg5/JLlzxuOV86Y=
80
+=PMZl
81
+-----END PGP SIGNATURE-----

+ 74
- 0
static/gpg/sigs/content/page/contact.md.asc View File

@@ -0,0 +1,74 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: Contact
6
+subtitle: Hello, Lollipop Cloud, here. How can we help?
7
+- ---
8
+
9
+# Getting In Touch
10
+
11
+If you'd like to get in touch with the Lollipop Cloud team members, we have a few different options.
12
+
13
+Please note: *ALL* of our chat rooms are bridged together using [Matterbridge (link)](https://github.com/42wim/matterbridge). Nicknames will be shown as "(PROTO) NICK" when messages are sent.
14
+
15
+### Clarifying Terms
16
+
17
+PROTO
18
+: The protocol that received the message (matrix, xmpp, others)
19
+
20
+NICK
21
+: The nickname a user has set
22
+
23
+## <i class="fa fa-envelope" aria-hidden="true"></i> E-Mail
24
+
25
+We can be reached via e-mail at [this address (link)](mailto:cloud@lollipopcloud.solutions).
26
+
27
+## <i class="fa fa-activitypub aria-hidden="true"></i> ActivityPub
28
+
29
+We have an Activity Pub account (Mastodon/Pleroma) if you'd like to get in touch on a social network. The account is [@cloud@ap.lollipopcloud.solutions (link)](https://ap.lollipopcloud.solutions/users/3)
30
+
31
+## <i class="fa fa-xmpp" aria-hidden="true"></i> XMPP
32
+
33
+If you don't have an XMPP account you can join our chat rooms at [https://anon.xmpp.lollipopcloud.solutions (link)](https://anon.xmpp.lollipopcloud.solutions) via your browser. *No* registration required.
34
+
35
+**Please note**: the link above will load a javascript file from conversejs.org for the XMPP client. If you're using uMatrix/AdBlockers you may need to allow access to conversejs.org when viewing the site.
36
+
37
+### General Discussion
38
+
39
+We currently run an open MUC (multi-user) general chat room on the XMPP network. The room is ```general@muc.lollipopcloud.solutions``` and you can connect with your preferred XMPP client and account.
40
+
41
+### Tech Talk
42
+
43
+We currenly run an open MUC (multi-user) chat room for technical discussions on the XMPP network. The room is ```techtalk@muc.lollipopcloud.solutions``` and you can connect with your preferred XMPP client and account.
44
+
45
+## <i class="fa fa-globe" aria-hidden="true"></i> Matrix
46
+
47
+If you don't have a Matrix account and would like to connect as a guest via your browser you can head to one of the below links with your favorite browser to get in touch.
48
+
49
+### General Discussion
50
+We currently run an open general chat room on the Matrix network. The room is at ```#general:lollipopcloud.solutions```.
51
+
52
+Anonymous access can be had by going to [https://riot.im/app/#/room/#general:lollipopcloud.solutions (link)](https://riot.im/app/#/room/#general:lollipopcloud.solutions)
53
+
54
+### Tech Talk
55
+
56
+We currently run an open chat room for technical discussions on the Matrix network. The room is at ```#techtalk:lollipopcloud.solutions```.
57
+
58
+Anonymous access can be had by going to [https://riot.im/app/#/room/#techtalk:lollipopcloud.solutions (link)](https://riot.im/app/#/room/#techtalk:lollipopcloud.solutions)
59
+-----BEGIN PGP SIGNATURE-----
60
+
61
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpygQACgkQnXn79mHs
62
+Z3m7KRAAiNNNL09tOAmfG7dUlED1lvFSj7uAN3fqPFq6F7tb/BIKruc5Ezqpnl0N
63
+kees4dyX3qmhXhxD9f17YvXGNqGFYf9/oTR/1j6/mf3wLICGRQjXcOIFrCOz62ZP
64
+6WeOXKwUoY3Rd271UpqWOgdsPU1X0FFQPrAFRxCQCc+6APhNRhnx67cMN5sE/QLt
65
+nW7fb7KcNhO0I1M+YAGfJTYR0cBKBn2KmmeZRC/8wrOowtemQAHOR4vCmzSfIaxG
66
+4vaNRHdWNPqflxOu+GjrZJ4B+FcTqw84aUvs3pc8Dzf0VY8d5v/oIkgDjsar5lLR
67
+FSDKpz3m3Q6vVXU5pUKXNG+p4TyM6XogJo/AemJVzZznAF/nhl49HoT2LSWr7oOG
68
+f9buNg5PPxJ3C7YG94LD0Cuf/4JVNO2+lgcvRoom1t9YF+patjTYIXZrMyMjyHmI
69
+EvLztJYMS79/hxovaKS6HouHsv/4YfE0ydcr5h5C8nNDTOViSEHuIBNLM1UG7n0P
70
+rBY8/DXVO1gjPhypSUH5dMeqHup/w3ShQBZInfKdIx6dwk5yDOAWqmmR9OZ0oaQP
71
+L6bdD8JrcEC5Y853175AnxqYKXgwnucV3TwrEtvQMdpSmzOmhcFut3Hq2Vfar4lF
72
+QwD/MU83VYUO21+Oops7J4JCPOL8f48pDju9s3GN8InJvWFT/tI=
73
+=WcTI
74
+-----END PGP SIGNATURE-----

+ 60
- 0
static/gpg/sigs/content/page/contributing.md.asc View File

@@ -0,0 +1,60 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+# Contributions Welcome
5
+
6
+Not wanted: *Welcome*. We *welcome* and *appreciate* any help others may offer.
7
+
8
+The team works with the community to ensure the project continues to improve and evolve in a positive, forward, accessible fashion.
9
+
10
+# Where to Start
11
+
12
+If you'd like to help the Lollipop Cloud project but aren't sure where to start, please let us know. We have chatrooms listed on our [Contact Page (link)](/page/contact/) and our team keeps an eye out for messages. If you prefer a more private conversation, we have an e-mail address at the bottom of every page.
13
+
14
+Please reach out: we welcome all who would like to contribute and/or participate.
15
+
16
+# What Can I Do To Help?
17
+
18
+*Any* help is welcome. There is more to a project than code. Documentation updates, code changes, community supports, testing, and more are welcome contributions. We don't ask or assume you want to dive into the nuance of our code or the deep, dark corners of our project. That's our problem; not yours.
19
+
20
+## Community
21
+
22
+If you'd like to help with our community management, the [XMPP and/or Matrix chat channels (link)](/page/contact/) are our primary point of presence.
23
+
24
+Stop by, say hello, and we can work together to build the Lollipop Cloud community.
25
+
26
+## Documentation
27
+
28
+All of our [documentation for the Lollipop Cloud project is available here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs).
29
+
30
+If you're interested in submitting updates, please stop by our chat room and/or open a ticket in [our Kanban instance for documentation (link)](https://kanban.lollipopcloud.solutions/project/admin-lollipop-documentation/). *Both are 100% okay*.
31
+
32
+## Testing / Bug Reports
33
+
34
+If you'd like to contribute testing and/or bug reports we welcome the feedback.
35
+
36
+We keep an eye on the [XMPP and Matrix chat rooms (link)](/page/contact/). We track bugs, enhancements, etc. on [our Kanban instance for code (link)](https://kanban.lollipopcloud.solutions/).
37
+
38
+If you're interested in submitting test reports/bugs/etc please stop by our chat room and/or open a ticket in the Gitea instance. *Both are 100% okay*.
39
+
40
+## Code
41
+
42
+All of our code is on [our Gitea instance here (link)](http://git.lollipopcloud.solutions/). The ```lollipop-cloud``` organization has our documentation, website and some other small code repositories. The ```lollipop-docker``` organization has the code for all of our Docker container images.
43
+
44
+If you're interested in submitting updates, please stop by our chat room and/or open a ticket in [our Kanban instance for code (link)](https://kanban.lollipopcloud.solutions/project/admin-lollipop-cloud/) and/or open a pull request. *All are 100% okay*.
45
+-----BEGIN PGP SIGNATURE-----
46
+
47
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyhYACgkQnXn79mHs
48
+Z3n5oQ//fPDpyvFUyC+bT1bo4IAJaN6lVZl0QuiopJOwTy3f7oNkr4uFr10njxx5
49
+PjtBEaXY5LeuL60omsKupCs375pC4MTRmMGUcClqOGOT5citIsqUtnLQmKvZHU2t
50
+JbxsgJEq8clMQ9uAJUIi+fdt5FwlcScsDJAhc3TUrYELtQuhwicGgsG/N5/TAIfJ
51
+BfzlLNNXNu2TZYc+/0jToQxIW0zp9hT0WFGVhFt5jYoHwZTlKf4I3JfApsjTvPYE
52
+Xezlws1qgg/PYvTzEBvEYMKWd7ZDq+ZSwGnvcwEAp4hexb9LLY00ZZot8ZzWcv66
53
+d4rNS9ihRMik1cbsy8E2vYyX9fa4RAecR+2VYNn/uJdOmuYn3WBI/NeT4+ipEE+E
54
+dkZGJLmHzRW95zUAQq1/vHfXplcTcW7OGk6aM5EkPlhEE/gzljuvMymD/tmxLf4M
55
+XkPdBz7/LWbgrlSD6x1iHpf4c9OCgFa40Ofa1b+OIz10Rf6uWnbWcIZhm4EWGpiu
56
+OgTMSE2n085Uwy2Qs22MZ2zjY2v7e5eA0OKJKxmdm8FOom4cqAhax5Ra4kDCM5qR
57
+gg6YgYeAGAhEQOoPvzcOPBj+kbSsymM2l4xNdpT9L90Q75TYOMFJRUfscNg0BV2r
58
+rj9xhYVQL79Ug4q0ClEEy35QT7wxxv4zqpV7IZSMBdNXk/Xuykg=
59
+=DCyQ
60
+-----END PGP SIGNATURE-----

+ 67
- 0
static/gpg/sigs/content/page/credits.md.asc View File

@@ -0,0 +1,67 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: Credits
6
+subtitle: A hat tip, nod, and THANK YOU
7
+- ---
8
+
9
+# Missing Anyone?
10
+
11
+If you know someone who is missing (including yourself!), please open a ticket on the [website's kanban board (link)](https://kanban.lollipopcloud.solutions/project/admin-website/kanban) so we can make sure they are added!
12
+
13
+We ask you to submit:
14
+
15
+- - Your preferred public name for this page
16
+- - A blurb about your contributions
17
+- - Your pronouns
18
+- - Website link(s), if desired
19
+- - Social media account link(s), if desired
20
+
21
+# KemoNine
22
+
23
+### Founder / Team Member / Contributor
24
+
25
+The perpetrator of the Lollipop Cloud concept, project lead and developer of things. You can find them over [here (link)](https://kemonine.info)
26
+
27
+# jmf
28
+
29
+### Team Member / Contributor
30
+
31
+Copy edits, documentation, project management and more. You can find them over [here (link)](https://jmf.codes/).
32
+
33
+# hoodie aida kitten
34
+
35
+### Contributor
36
+
37
+*shy poor catgirl attempting to be a positive influence on the world around her*
38
+
39
+Copy edits, documentation, accessibility, more. You can get in touch with fem via e-mail, at hoodiehime@outlook.com or follow feir social media through feir site [here (link)](https://abandoneddoll.neocities.org/).
40
+
41
+# Heather L. Gilbraith
42
+
43
+### Logo Comission
44
+
45
+You can see more of their work on their website [http://liquidflare.net (link)](http://liquidflare.net) or their Mastodon account [rheall@mastodon.ART (link)](https://mastodon.art/@rheall)
46
+
47
+# halogenica
48
+
49
+### Beautiful Hugo Website Theme
50
+
51
+Full sources and more details [here (link)](https://github.com/halogenica/beautifulhugo)
52
+-----BEGIN PGP SIGNATURE-----
53
+
54
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyhEACgkQnXn79mHs
55
+Z3nmug//ZgJ/Qwbd7DVw01xsD/djcb8BXJ5HC6sst5OUmy622HBGBZZXjQ7YAvVT
56
+S5Dt+CLbTAZTDKpr4XZsFpm2LNeQktNMcNHFLyR+1j1hgtcispZiGlNSqOcMpgzu
57
+c6/Ly5/vtqX/VSDgcLyOzfINQFn6FP1kSkPU8QpQWVn8QN41LRJ33Y5bgWr/fNa9
58
+iln5RJmfCiHQmBkAYchdF1B6a/DijcJ/mdR/+0KtxWPoaUXD9jdGmO/rp1wgayJR
59
+OM1dVFs8G0+/xRejmI86Kbnd5Fmt39VEWqEQdUMpuOWWQOhH/oMFGZJHhVPgPW70
60
+rAUFeRKBqmOTj8f+3cHympzD2AQ8m+cJ9qMWnqXJOZnOmXo7HntJnghxU/n43U0H
61
+qMn0T210QSsEaV/I2WKPcGO0jiOH4vWhese9IgsEiKgq3n9IdDgG9COOGVb9qRIZ
62
+IoxeLyfLkh66eDBPznTXgjyhIdRu9hcWYOO72wpzv+gmwJZLnkuD1TDLCNTvbHwP
63
+2W5yizBHGOYZkATMLSP+VTFOgMGUUb7WRkoGO2Nmx6aPNmKOUq4Rq1/NYIiMM+YH
64
+vBU8M2kkTD18s3hMy07W81H6LLRfYoL+SyKkKCRA65yXskkOZ/Z9Pa9tXgwWryEr
65
+06TREaeWC3vpFoM/Ho52NbYqJ993284ds0FZPOzQdKa6u/u9OEg=
66
+=uncb
67
+-----END PGP SIGNATURE-----

+ 34
- 0
static/gpg/sigs/content/page/donations.md.asc View File

@@ -0,0 +1,34 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+# Donations
5
+
6
+We are currently investigating options for donations. Please e-mail us if you'd like to make a donation at this time.
7
+
8
+Below you'll find options we are currently investigating.
9
+
10
+## <i class="fa fa-money aria-hidden="true"></i> cash.me
11
+
12
+## <i class="fa fa-patreon aria-hidden="true"></i> Patreon
13
+
14
+## <i class="fa fa-paypal aria-hidden="true"></i> PayPal
15
+
16
+## <i class="fa fa-ethereum aria-hidden="true"></i> Ethereum
17
+
18
+## <i class="fa icon-monero aria-hidden="true"></i> Monero
19
+-----BEGIN PGP SIGNATURE-----
20
+
21
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpygkACgkQnXn79mHs
22
+Z3l/iQ//UrwhdiDjzrOqYCfu+QAMDnfOQpdQwXIRbvFvoegJaHjX2fmIF+SbmhbN
23
+EvLABf4L7XSg/wqrrvjxhIbHNriq728AJJM0xUj3uZxVSxOyURbQMrvds1V94Cll
24
+AW9NgQFxSjH4E5Gh9QoIbr+yETLIWPEucjTjUgbg8b3Nj/d0tqaor95Y5/jDe/sv
25
+tzJupb9kxaP36V16lX9tVcyNTtb/tV8qELiq1o2DsjMaqpJWDLn06uxpStUScMdu
26
+hjKeuqvlKBmsE3ug/DEfX8c4e9KF555Q9DhxRrPulqo7tWgsZCLXgn6itY32p/EU
27
+OmP72PsztCtzdD3esEJlyLml1hjH4jRjtF0jeArLOU1by536DSITXxi9tTu55gYD
28
+MLY17pzH+aOaerxB2HuIAMIr7fsQgnMvKspxy7Z87CjLlTbpMaqwDAJMNr5etJC+
29
+uKWJ7BNkphyWNpnLmptozqcp+JwaEQhSHztuo3JqqjGLdgtCrnWkqffva2Essoyi
30
+nTKKN2AqQ0+3qtDHdqzEt7d4E+jTCUqu9GTJtCnB93/aBXjkGwONOhOBuKpka+ZP
31
+bziyGtziZsT1gcUi9GGqQoyvpQzdMLnYWXSo2JrlNvT3RLXTOZpqUiD/oApE1YZV
32
+sbZ1mZZb1T1LCRf5p02Xz6PvKKrKjcNDkBHkdb34vU4X8ibCDTY=
33
+=a8Y5
34
+-----END PGP SIGNATURE-----

+ 83
- 0
static/gpg/sigs/content/page/gpg.md.asc View File

@@ -0,0 +1,83 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "[Open]PGP Keys"
6
+subtitle: A breakdown of OUR keys, fingerprints, ids, etc
7
+tags: [gpg,pgp,openpgp]
8
+- ---
9
+
10
+# Main Lollipop Cloud Key
11
+
12
+ID
13
+: 00A85B49E7BF7FDB
14
+
15
+Fingerprint
16
+: 681560EAEB19ECE5F96EC40200A85B49E7BF7FDB
17
+
18
+Type
19
+: 4096 RSA
20
+
21
+Download
22
+: [lollipopcloud.pub (link)](/gpg/lc_keys/lollipopcloud.pub)
23
+
24
+# Team and Infrastructure Keys
25
+
26
+## Build Server
27
+
28
+ID
29
+: 6D9BEDF7EE7B1D30
30
+
31
+Fingerprint
32
+: 74740085E814D1C85E65A0A26D9BEDF7EE7B1D30
33
+
34
+Type
35
+: 4096 RSA
36
+
37
+Download
38
+: [build-server.pub (link)](/gpg/lc_keys/build-server.pub)
39
+
40
+
41
+## KemoNine
42
+
43
+ID
44
+: 9D79FBF661EC6779
45
+
46
+Fingerprint
47
+: 2DCE25A15B872D5BF592BA009D79FBF661EC6779
48
+
49
+Type
50
+: 4096 RSA
51
+
52
+Download
53
+: [kemonine.pub (link)](/gpg/lc_keys/kemonine.pub)
54
+
55
+## jmf
56
+
57
+ID
58
+: 5F74BD822DD3B009
59
+
60
+Fingerprint
61
+: 9C76703A1040396DB2BF8BC15F74BD822DD3B009
62
+
63
+Type
64
+: 4096 RSA
65
+
66
+Download
67
+: [jmf.pub (link)](/gpg/lc_keys/jmf.pub)
68
+-----BEGIN PGP SIGNATURE-----
69
+
70
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyhQACgkQnXn79mHs
71
+Z3nfdw//WQ4AbAikfC859VBjeAIZv9z6AZXaz+kZ33mMDKcbiA8buB5sH/elfKhA
72
+d65hJuxM4FZ4vv9Qmxot9pVAVJnuhwr6z6WP1evb1muFSnIXTnCWT7NloGqvycul
73
+qQqpN/MN6lGp4eDuHp2YVkjxLf6I0VDiuJS4aB13a0MzRdntdDDGZKZ26CWwhLFy
74
+lDTlpc0rQ4VYts6wy8bwD1u7fky+PCdbqK6nEFmaW6rwvThiU37XzWTb3AbtXhy7
75
+sY0OzEh1N3IuvCS3YaXgt8g4iIyI8tTq7DbgbndmKf0pMtteaBaHA2xxT3hUZoIn
76
+dapRqVxI0JNepVBnVMcP5Zufz4ME7R8SeHxCPqgl71FcqhKYlLXxMH5I+DPMrQih
77
+QV32pkQF7QeZJoywwnxOLPOP3q7eZonjONnIr+DU8od0p//3Aviyv48p7aynEOZA
78
+9vkXNFJVF7ZuRbIImrthfv1hctWulO/lsbQslw9wiO4gzRDssEheJuEC1uoHeIzT
79
+U3ROJtUZFT/5P/ROEPeywdEpbgLaV08an53lGc1gRX1bN17oHAFeuQTL+2Chfzuy
80
+9DbqmuSaGMdB6RO9nG17SX6QI0jq5/gp+R7HQxn3TcnXep5eBiPBFJcjw3pRZ+T6
81
+w8Uy04+8iCU+UkLaKaDBCiZb1kabO473DGamaU5HAK4GjY7sVhE=
82
+=qqiS
83
+-----END PGP SIGNATURE-----

+ 101
- 0
static/gpg/sigs/content/page/transparency.md.asc View File

@@ -0,0 +1,101 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: Transparency Report
6
+subtitle: Our Infrastructure. No secrets.
7
+- ---
8
+
9
+# Full Disclosure
10
+
11
+The Lollipop Cloud project is fully self-hosted. We are using the software, tools and environments that we recommend to others for hosing our public and private infrastructure.
12
+
13
+We like transparency, this is our report.
14
+
15
+## Public Resources
16
+
17
+### Git Sources
18
+
19
+Our [Gitea instance (link)](https://git.lollipopcloud.solutions) (git sources) hosts code for *everything*. Web site source code, Dockerfiles, documentation on how to deploy a Lollipop Cloud. **EVERYTHING.**
20
+
21
+### Website Analytics
22
+
23
+We have deployed Fathom for website analytics (open source Google Analytics). We have 2 instances deployed: one instance for our main website and one instance for our Gitea instance. If you'd like to see our analytics, we've included links and login details below.
24
+
25
+Please note: Fathom respects "Do Not Track".
26
+
27
+#### Main Website
28
+Link : [https://web.fathom.lollipopcloud.solutions/](https://web.fathom.lollipopcloud.solutions/)
29
+
30
+Username : ```anon@anon```
31
+
32
+Password : ```anon```
33
+
34
+#### Gitea
35
+
36
+Link : [https://git.fathom.lollipopcloud.solutions/](https://git.fathom.lollipopcloud.solutions/)
37
+
38
+Username : ```anon@anon```
39
+
40
+Password : ```anon```
41
+
42
+### Server Satus
43
+
44
+Our public facing infrastructure is running munin for resource utilization monitoring. We use this information to gauge our headroom, what services are going to be more problematic on smaller ARM boards as well as how much vertical scaling this project may be able to achieve.
45
+
46
+If you're interested in what our resource usage is for a public project you can [view the munin stats and graphs here (link)](https://munin.lollipopcloud.solutions).
47
+
48
+## Public Infrastructure
49
+
50
+The infrastructure and software that runs the lollipopcloud.solutions website and services.
51
+
52
+### Hosting
53
+
54
+- - Scaleway Paris data center
55
+- - ARM64-2GB instance
56
+- - 4 core ARM VPS with 2Gb ram
57
+- - 64bit arm (aarch64/arm64v8)
58
+- - ipv4 and ipv6 enabled
59
+
60
+### Bare Metal Setup
61
+
62
+- - Ubuntu 16.04 (Xenial)
63
+- - Borg backups
64
+- - Caddy
65
+- - Chrony (ntp)
66
+- - Docker
67
+- - FirewallD
68
+- - incron
69
+- - munin
70
+- - hugo
71
+
72
+### Containers / Services
73
+
74
+- - matterbridge
75
+- - prosody
76
+- - matrix
77
+- - gitea
78
+- - privatebin
79
+- - acme.sh
80
+- - postgres
81
+- - fathom (2 instances)
82
+
83
+## Private Infrastructure
84
+
85
+None at this time.
86
+-----BEGIN PGP SIGNATURE-----
87
+
88
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyg8ACgkQnXn79mHs
89
+Z3kCIw/+JZPRRC0nXY5sxbeAyZY8dcrkZzN7G5jRVQxHHS1pZYIfHO5w+BX8sxdh
90
+17Tpf8XcaFdBwYJTOpEBoq/Ndfy8HCq5sFM7WKqTZKtyy3jG88iuRbevtH7doVy2
91
+24LXIbIylhBhOqvNCG6itk7OajJ1Hsoe5MVBPSW/mL0WIGrzrCc2xymBDH2GfL3t
92
+tPfKQ2hHN27CWBHgX8JLLg95ZNwUZFcqDJ34RGISzvoVTeZZMY1Fyy1uRSR9mUId
93
+uCMGgQIlH3UIHYhD94b3FSjYAtS+5hBhBBghyBPciTrYskuCxjeUNaixtUaJmW/P
94
++9yXGt4Cmzq3uSNiSGrD9qyeu2DkS5HmNKqxF4+shNrkAjQY4Ch9ZaTuOsXfbPAG
95
++Fgz1N9dpEIBADnMB4vZWwflmpU1bQ65tFaHxQ9Gh5g711tsjMn6cFYTOOFsiodI
96
+ZAXI0j2+ZzihAQAECwgwxQ23Iaa7He0w1Boq4rdzNE3KynReSeD+uBkR35LI6sW+
97
+suKuhwiJ2VGWCKgwNfT/WTNpoEgvKnx0TAvipiNhThjbJ9M5abrEIyFdR1ly5pT/
98
+pfbqDZaLNbPdxBUUJHHyRO2iUTGmRFGkBlZtzz9+iaZdEENnuaBm7Enqi3MZWnHq
99
+oPubv7DztfDFImTpbgpyLWuHNIsk3f3adx2B5cFbqDoChuBvjkI=
100
+=ywan
101
+-----END PGP SIGNATURE-----

+ 72
- 0
static/gpg/sigs/content/page/what-is-lollipop-cloud.md.asc View File

@@ -0,0 +1,72 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+# What is the project?
5
+
6
+The Lollipop Cloud project is an attempt to do the following:
7
+
8
+- - Self-host software and services for nomads, for those with limited internet access, and for those wanting to avoid the various corporate entities that harvest your data.
9
+- - Lower the friction of self-hosting. Preferably with a Raspberry Pi, Orange Pi, or other lean, small [ARM mini-computer boards](https://en.wikipedia.org/wiki/ARM_architecture).
10
+- - Empower *users* to control their own destiny online.
11
+- - Use only open source software.
12
+- - Create a "cloud" in a very small box, with built-in flexibility. A cloud the size of a credit card or as big as a rack mount server? YOU decide.
13
+
14
+# What is a Lollipop Cloud?
15
+
16
+There is a concept of a "lollipop router" (or "router on a stick," depending on who you ask). This is a fancy way of saying "take a [router (link)](https://en.wikipedia.org/wiki/Router_(computing)), make it super small, give it a single [ethernet (link)](https://en.wikipedia.org/wiki/Ethernet) port, plug it into a specially configured [switch (link)](https://en.wikipedia.org/wiki/Network_switch), and give it fancy networking features".
17
+
18
+Basically, it's a really small router, roughly the size of a USB thumb drive and no bigger than the size of your fist, with a network port. "Router" is a pretty broad term that covers a *lot* of hardware, software, and activities, which can be customized for individuals' home networks or massive corporations' networks.
19
+
20
+And this is something you can use to your advantage, even if you don't work in tech or have extensive IT knowledge.
21
+
22
+# Why call it a "Lollipop"?
23
+
24
+We use the term "Lollipop" because we are aiming for very small, inexpensive mini-computers to deploy a personal cloud (more on this term shortly).
25
+
26
+Lollipops are also a fun treat.
27
+
28
+*[Editor's note: also, KemoNine used the term casually early on, and it stuck.]*
29
+
30
+# ARM Mini Computer
31
+
32
+An ARM mini computer is essentially a computer the size of a 6-inch smart phone or smaller; but a smart phone without the screen, speakers, cellular data connection, or operating system (Android or iOS).
33
+
34
+ARM is a type of [computer processor (link)](https://en.wikipedia.org/wiki/Central_processing_unit) (similar to "Intel Inside" your laptop) that's commonly used in mobile devices (phones, tablets, etc).
35
+
36
+It should also be noted that a "computer" in this sense doesn't necessarily include a monitor, keyboard, mouse, or other things typically associated with a modern computer. The term really means the "tower" part of a desktop computer, but stripped down the absolute fundamentals like the [motherboard (link)](https://en.wikipedia.org/wiki/Motherboard) and [RAM (link)](https://en.wikipedia.org/wiki/Computer_memory).
37
+
38
+A good example of an "ARM Mini Computer" is the [Raspberry Pi (link)](https://www.raspberrypi.org/). It's a super small computer that fits into an inexpensive case, and can be customized with additional inexpensive hardware to do perform a specific task or group of tasks: like your personal cloud device.
39
+
40
+# Self-hosting your personal cloud
41
+
42
+[Cloud computing (link)](https://en.wikipedia.org/wiki/Cloud_computing) or sometimes referred to as "the cloud," is the way most of our data is stored and processed today. A "cloud" by most definitions is actually just "someone else's computer." If you backup your photos from your phone to iCloud, Amazon, or Google, your photos are stored "in the cloud." If you use Google Calendar to share your schedule with friends and family, your information is being processed by and stored in Google's cloud.
43
+
44
+Using "the cloud" allows you to take advantage of the convenience and security of letting someone else (or a whole company) do the technical work behind the scenes of making sure you have enough storage space, the ability to access your files whenever you want, and keeping unauthorized people from seeing your private information.
45
+
46
+Traditional cloud computing requires us to have a stable, reliable internet connection, with unlimited or very high data plans... and a whole lot of trust in the corporations storing our data. Data breaches happen all the time, where unauthorized users gain access to personal information, and corporations rely heavily on the ability to collect, buy, and sell our data in order to generate profits.
47
+
48
+**But it is possible to create your own cloud device.** You can create your own router, backup your photos, save your address book, share your calendar, and more, with a small computer and a little time. You can even host your own website, email, blog, chat rooms, and more.
49
+
50
+Self-hosting your personal cloud is a way to take control of your data without relying on outside organizations for services in exchange for access to your data, while still allowing you to collaborate and interact with others.
51
+
52
+# Summary
53
+
54
+The Lollipop Cloud project is just one example of a self-hosted cloud. Everything you'll see from the Lollipop Cloud project, like our website, blog, website analytics, chat rooms, and Gitea with our source code and version control, are all self-hosted.
55
+
56
+We control our own destiny online for the Lollipop Project, and our goal is to allow others to do the same with minimal effort.
57
+-----BEGIN PGP SIGNATURE-----
58
+
59
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpygcACgkQnXn79mHs
60
+Z3mbkQ//dM4Rg7qjUiS/Hl3Xk8mhNwuODrJLTqUf3gmIrTD4qu9vvUtuqM3Jy/Lr
61
+KuDS9RReoMCV1yYD4BHUcqOigPPl36Hhpmtm74VgE3xyPqAHaZ9MtxmFrzaHUNMS
62
+LCglyVhgK7Ua7FLHhNowkPZAu6okkaEWja/Zhpitaba/1OsFvbEb15EcVTtIFBT2
63
+4QnaIV5eswxLO9IYivIqnYaXDAox6yBgwcEvCNSeAsxxZKufBAvhdOHzDdFTHzRd
64
+m5TEN226eYkYHbzuhae1RgVXDMo8PWslgA93GXdUCrlYshwcgk460MbhzFvgPXIx
65
+lhgaSKlra2lO4a089zr5htrMj8A+LGIuhw8AiV8f3ikw0G6HGsLsVhv82QHaaxBk
66
+97LNMIsMhhXgKqsOnpi7MxFrILoCK+iBp/mEjdX+aXGMXF+eiq1O5PgTei4y4U9O
67
+UX4nJZTHp8FiU6zkKTb9MLOH/OjBNl3W4n9483Q1GvYEK449s7/Bk9aOV3CqO1fq
68
+v14yjEtZpMXhDMRjniapUC1FguZQu7zI/uzOs4EL4RWFj540JESf+B7jiWxHa0op
69
+KjV0IJjgI4ceQgcK3FZB4HPmAYP6KAyFvyXHS5vRDIYbIGBrp5vMcMNvyn2Azh3q
70
+PGYNa/hlhPfa+LSzNxexT2DNpMabzY4tJ9ELucp5SrssF+lrFHI=
71
+=SeKh
72
+-----END PGP SIGNATURE-----

+ 34
- 0
static/gpg/sigs/content/post/2018-06-12-first-post.md.asc View File

@@ -0,0 +1,34 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "Hello There"
6
+subtitle: "We're live"
7
+date: 2018-06-12
8
+#tags: [helloworld]
9
+#draft: true
10
+- ---
11
+
12
+I've been working on a self-hosted cloud that's rarely online (only to get updates really) as well as provide services for myself and others while 'disconnected'. Services like contacts sync, calendar sync, file synce, backups, ad blocking and more.
13
+
14
+As I've worked on the project a few very amazing folks have made suggestions about how it could be used to lower the barrier of 'just self host' for a LOT of people floating around the internet.
15
+
16
+After some thinking and quiet time I realized it's time to make this a real project.
17
+
18
+More will be posted as the project comes online.
19
+-----BEGIN PGP SIGNATURE-----
20
+
21
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyf8ACgkQnXn79mHs
22
+Z3mVvA/9GKToWyJtdyM48AbAhhExVUTjfSkNN3SKdAFARQ/Zr1EcqJBG3WkNsR2I
23
+Fn5YLDwjzayABC//3MOxDLa7XdwSShLqLpRmvq3sNWks9g9+DIMtEI/l/dfNqdAI
24
+18uTLubVLPtcZFKs3Pu5EmSykCSfwDQDN0SScxWGnQotFr7ygg+I3TQ7ykr2FJCX
25
+NLaZ73W1vLurzsgdUhbkxJwb8XEztUAC8bxMwNlQwaedMK+XXFWZVNiNg1cMTfBp
26
+qI17byxg7rt5GpLS4ePQ1T9yCGFQIvQY/UDuXEXusuNghb1w6SXpJ14Qv/uwMnA9
27
+srwuXImrP3z3qhHcT3taQkG6nai/jbjCDohvVgOXyg/bIg0lZbOJ/aoth4RIbrpA
28
+gxRL9A8VMYjgJKRuQD7JX7+IfPl4hQKSqChy8KtFstBSfLrZqIkaPApImDUKwe/A
29
+gRr/FV/QdQuuLAjvWbANmrU5P8dz3DNj7VmHdwzjsVlAJcTh1oZGKWt4FSY0KTNz
30
+WwuTr1TiHc8m9dJs6QL1VXcjksLTglwZXz7s6Zi1qiH9hFnrmlk9Sdzu1Da2n51K
31
+3mq/iOtAjXiH+RSedstoMh+cD/2gsDCBeTQp9U6vC0VV7KeJXjL8950bh1ALldnt
32
+iL74cDauhzur0JcWySmc8lwswonTb82DDa/OiYPRU2bkP7mbJp4=
33
+=NAoV
34
+-----END PGP SIGNATURE-----

+ 79
- 0
static/gpg/sigs/content/post/2018-06-13-quick-update.md.asc View File

@@ -0,0 +1,79 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "24 Hour Status Report"
6
+subtitle: "What a RUSH"
7
+date: 2018-06-13
8
+tags: [statusreport,update,misc]
9
+#draft: true
10
+- ---
11
+
12
+# What a RUSH
13
+
14
+The last 24 hours have been fraught with stress and amazing feedback from people all over.
15
+
16
+😍
17
+
18
+The feedback, positive vibes and commentary have been very helpful for getting through some hiccups the last 24 hours brought to bear.
19
+
20
+## Server Crash
21
+
22
+Within 4 hours of going live we suffered a server crash. One of our services had a RAM spike that crashed the server. Our primary admin was napping when the outage occurred. They rectified the problem immediately upon waking up.
23
+
24
+We are keeping a tight eye on the server and are investigating mitigation strategies for the future.
25
+
26
+## Transparency Report
27
+
28
+In the interest of being good internet citizens we've published a transparency report and enabled public access to our munin logs. You can find the full report [here (link)](/page/transparency/).
29
+
30
+The report outlines our infrastructure, where we have our code and a few other details. We will be keeping it up to date as we deploy services, update infrastructure and more.
31
+
32
+*No Secrets*
33
+
34
+## Self Hosted Chat Progress
35
+
36
+We deployed Matrix and XMPP as our primary chat systems (with bridging between them even!). We've been hard at work the last 24 hours to improve self-hosting of both using our project.
37
+
38
+We're far from done. The updates over the last 24 hours were meant to help our admin team manage our offical accounts more easily while setting a good foundation for others.
39
+
40
+### XMPP
41
+
42
+KemoNine managed to get a self-hosted XMPP browser client deployed today. The rough code and notes are in our Gitea instance [here (link)](https://git.lollipopcloud.solutions/lollipop-docker/converse.js/issues). The setup uses [converse.js (link)](https://conversejs.org/) served via Caddy. We will be cleaning up the code and details soon. If you're used to working with a command line on Linux the deployment should be pretty straight forward.
43
+
44
+Please note : BOSH is a bit tricky and may need some additional parameters in ```prosody.cfg.lua```. The main prosody website has docs that can help. Also watch out for CORS issues if you deploy converse.js or BOSH on a sub-domain.
45
+
46
+### Matrix
47
+
48
+KemoNine managed to get a self-hosted [riot.im (link)](https://about.riot.im/) instance deployed today.. The code is very rough and difficult to follow. We recommend skipping this setup for the time being. The code is [here (link)](https://git.lollipopcloud.solutions/lollipop-docker/riot.im/issues) for the curious. This should be a good foundation for the future.
49
+
50
+## Next Steps
51
+
52
+At this point we feel the fundamental infrastructure and services are online and stable enough for us to get back to code and documenation.
53
+
54
+Our primary goals for the near term are
55
+
56
+- - Adoption of a Code of Conduct
57
+  - For now : Don't 💩 in the pool. Consider yourself warned.
58
+  - We are investigating different CoC's adopted by large projects and will be making an announcement once we have a final CoC drafed and published on our Gitea instance.
59
+  - You can track our progress [here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/issues/5)
60
+- - Cleaning up the primary documentation
61
+  - The fork from GitLab to our own infrastructure has caused a bit of a mess and we intend to clean it up
62
+  - Add additional documentation on how to get started with a Lollipop Cloud deployment.
63
+- - Letting KemoNine recharge a little. 3 months later and they deserve a mild break 😉
64
+-----BEGIN PGP SIGNATURE-----
65
+
66
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyfcACgkQnXn79mHs
67
+Z3nt6A//TeTu2wbQP2SHBHbnk0SY79po5wr4r1ndMOmj7RrdEXjPO8I33yqHK0dZ
68
+U6Weu0WOCIHSnpg/aGHJD/8nsCku8369PNb8mucqveu+xJ1IxTV23Qemm6ri7tRO
69
+5AMet2KzNV/w6zBH2gHB7Md6oi9TcYNw1OSCtb1UTo/Tta9Nj0ws76RLrGxjWMeU
70
+llvRf9oKySJS4X+akJFYpNqSXZANYMowJVgeFZld+9CaUd91dHeymejlg9cxFEIx
71
+3Qw+1fgRCUhphcBTGNWeRmmTWS0gFnS0WenlNC922zt+VEnUsmwQSXKR2ocnkiP3
72
+m27x97wv9FHjBYgt6SfHYdZlj0jiMRJYMLoxhcHGh/zh6JAiXkZ+2p24glgLH9+e
73
+956gpGOD1kcGq38oAcje9slt1vbiH1kZGLS2LLdWmiwv9fjYpGxvIW7wUaZAcs1A
74
+d3MG3X0GarHX34nGX8umMmmgMgfXo8SzRzvY5ildYDTrEoEcnKcOPwOZ1AyQC3+1
75
+8YBjdqOvtRZNmrhV4bR6zGbVx1P66vEIGnuwdk4d10knUwkiS3TMLB7L0u9Jydty
76
+1YrEPQET0eE4Wg8943ki5VZUC2cdBLfj6pUaGzWP2q1QtJ1VhvBU5s2glTGTAAer
77
+W7CBOfPl5tjYHBlA9nImx8JsHP6HA3WJjXWqWszqO2JQHa0aE/U=
78
+=0nBT
79
+-----END PGP SIGNATURE-----

+ 72
- 0
static/gpg/sigs/content/post/2018-06-21-progress-report.md.asc View File

@@ -0,0 +1,72 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "Progress Report"
6
+subtitle: "Things continue to move forward"
7
+date: 2018-06-21
8
+tags: [statusreport,update,misc]
9
+draft: false
10
+- ---
11
+
12
+It's been just over 1 week since the public launch of the Lollipop Cloud project. In that time we've had a server crash, updated a bunch of code, began a major update to the docs and brought more foundational services online.
13
+
14
+It's been busy to say the least.
15
+
16
+# Server Crash
17
+
18
+Just a mere 4 hours after launch our server responsible for the public infrastructured crashed. It was down for about 8 hours. This was NOT our intent and very bad luck. After digging into things it looks like it was a one time event. We've been online for just over a week now and no hiccups. We will continue to monitor the server and hopefully avoid repeats ;)
19
+
20
+# Noteworthy Progress
21
+
22
+## Documentation and Accessibility
23
+
24
+Since launch JMF has been hard at work improving our documentation. They also are helping KemoNine with improving the accessibility of our project. They have built out the beginnings of a contributor guide and have been working oon the setup and deployment documentation.
25
+
26
+The biggest item is a Code of Conduct. JMF has one up for review on our Gitea instance and it should be adopted shortly. They are working out some final verbiage updates but overall it looks very good. Our project is very young and we intend to have an official CoC sooner than later. Hopefully it won't be needed but we prefer to be proactive.
27
+
28
+## Code
29
+
30
+KemoNine continues to hack upon the code and Docker images that form the foundation of hte Lollipop Cloud services. They continue to improve items for easier deployment and accessibility.
31
+
32
+The biggest change was a number of updates to our XMPP (Prosody) Docker container and sample config. With the updates our Docker image should be able to replace SMS and MMS. We will be deploying the lastest updates to our public infrastructure soon.
33
+
34
+## Infrastructure Improvements
35
+
36
+KemoNine also managed to put together a Docker repository for our container images. They also figured out how to mirror official images from Docker Hub to our own repository. This means we are fully self hosted for Docker container images and our users won't have to fight with the official Docker Hub for setting up their own Lollipop Clouds.
37
+
38
+The contents of the registry can be browsed online [here (link)](https://docker.lollipopcloud.solutions/). We have all of the Docker container images that are being used to power our project online as well as mirrors of official containers scattered about the documentation. The documentation will be updated to use our repository as we work through the overhaul.
39
+
40
+KemoNine has also volunteerd to put together a set of Lillipop Clouds dedicated to building our Docker images, publishing them to our repository and mirroriing official images we use or recommend in the docs. At this time the build Lollipops are online and past initial setup. KemoNine will be working on automating things shortly. There are a few small items ahead of automation on their list.
41
+
42
+# Next Steps
43
+
44
+Our next steps are focused on tying up infrastructure loose ends, Code of Conduct, documentation, and accessibility. We continue to focus on making a self-hosted cloud a reality for as many people as possible.
45
+
46
+# Help Welcome
47
+
48
+Not wanted: *Welcome*. We *welcome* and *appreciate* any help others may offer.
49
+
50
+If you'd like to help or support the Lollipop Cloud project, please let us know. We have chatrooms listed on our [Contact Page (link)](/page/contact/) and our team keeps an eye out for messages. If you prefer a more private conversation, we have an e-mail address at the bottom of every page.
51
+
52
+*Any* help is welcome. There is more to a project than 'code'. Small documentation updates submitted via an Issue on our Gitea instance, code changes, community supports, testing and more are welcome contributions. We don't ask or assume you want to dive into the nuance of code or the deep, dark corners of our project. That's our problem; not yours.
53
+
54
+Please reach out : we welcome all who would like to contribute and/or participate.
55
+
56
+The team will work with the community to ensure the project continues to improve and evolve in a positive, forward, accessible fashion.
57
+-----BEGIN PGP SIGNATURE-----
58
+
59
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyfIACgkQnXn79mHs
60
+Z3m4wA//RjJday7OjieLIoCedESJjZjnf404z87IyLjPLokDf2faG3ZxW8MLKTY0
61
+o7p7LGXAwTxypLsgTJEQIiRvypChpLFB5z39HKQOYFyHOUF+aRb90QRajJX8sBkM
62
+mYlJpyBHPh5tTXkf7TVp12kElQsVgaB5LjEI/FD5653PQiiQK9cMMuMV7Xqp8WCk
63
+RR/V7ZnO1VWa2rP8fAuhaV+kPWNuegp9K9Tu/cefvVniXbJJEugQQxySj2Btgwwu
64
+/XvuAATGhIG/MAVeCzmuCcP1mmcjnU9gvP2+Sg+Gj5LVHIFWeSOiKgAGWtS2Ycvq
65
+Nw5IeMvU94XPCckMNVY20jwsnD1qQwhrhCtGJZGr0Q0gsvN395StaqDdS4wBdbRt
66
+95Lre5Dz83210MB/fe/5vq+xwn39YszD/RjbVV03dEvhHM6vQg0hWC1lj4dLXY82
67
+thvqwQrK8rynnAkutTJ4yCJJOgdR8e7bZY7FYSa2rbSBGwvKWCxyl5FE3cGmLAzy
68
+BuYF9MkgIY/XkaY0aPF65gSKEamNX8ZEOaQtzQ3uW0fDKYBVKIsJNubHoub91jgg
69
+ILyEj8smFdEOtEs50bNorE/p0EtMIsVisUueFCKLCTtQ7e5OiFBkeuFs9G0YARiO
70
+kv3bNfXrMMFst4U59t6VuQlZ6CXiRqIirGeGPftWrS/LffhKBZU=
71
+=3l/6
72
+-----END PGP SIGNATURE-----

+ 36
- 0
static/gpg/sigs/content/post/2018-06-25-anon-xmpp-access.md.asc View File

@@ -0,0 +1,36 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "XMPP Accessibility"
6
+subtitle: "Join the party, it's easier than ever"
7
+date: 2018-06-25
8
+tags: [statusreport,update,misc,xmpp]
9
+draft: false
10
+- ---
11
+
12
+It's officially Monday and KemoNine has been focused on ensuring we have content for the blog on the busiest day on the ActivityPub network. For today's blog post KemoNine has been hard at work building out a proper Prodody configuration that allows *anyone* to connect to our XMPP chat room via a browser.
13
+
14
+Today we get to announce that we have better, more open access to our XMPP chat room.
15
+
16
+You can now access our chat via [https://anon.xmpp.lollipopcloud.solutions](https://anon.xmpp.lollipopcloud.solutions). The link will take you to a converse.js deployment that auto-connects to our XMPP project chat room. You'll be prompted for a nickname and once you click (or equivalent) 'Enter room' you'll be in our chat.
17
+
18
+We hope this facilitates more open access to our project as well as lowering barriers to entry. One of our fundamental project tenants is accessibility and we feel this will be an improvement for the Lollipop Cloud.
19
+
20
+If you're interested in deploying something similar we have an open ticket [here (link)](https://git.lollipopcloud.solutions/lollipop-docker/prosody/issues/12) that details the Prosody setup we have deployed.
21
+-----BEGIN PGP SIGNATURE-----
22
+
23
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyfQACgkQnXn79mHs
24
+Z3nWUBAAqccvTph2nPVeGtedxYOrKe1hdSM8drEojk9B5/5/sIGvmLs53ucFCMwR
25
+hx+U9A7rR48+aQNw9MXLevnfCWg9Vu6+iD7J9iqqgGl6N/yS+e8KF0076vf0DOuC
26
+PDyU3s162pW7dMwf0k/oycDaqEVXAv0mNs5vVJPc7K5WINLa+9gI/AVXTcqlCGY1
27
+u4SF21x4vebyylJlReMlzjCYnGN8n2bGwcXlx2yDsLwY7VLhWGboC9inQ1EHbJfD
28
+LWDzMatAnr4q9DslzbD0/sridDRwoGZoUSHyD4vwwd/K3yYIJ3eiYgOwry1qTx3Z
29
+0HUbEVm4pRdOvWEbDcLr7WKpBiEY0zNhVgjIQEuQZqQg/0TRG0MJ1TCeGfG58Ii7
30
+ijJPD5OQ2SVVcC6t//9FHf+l+UCHPVhtXpg1YH9lyCr/d/0gn1Rt6SbkqoHSbC9n
31
+GaawjjXf9hc/unxe1wNuSe1ve0mzbt9jJl+zrmbr4XXCgGJ+HU5cv8I6G7q9f/Qp
32
+EZUfaVMGI+yyl43WHpr+vBgIPNadu0Kk2NjIoVQRTB1KiK0EQ3LLt5z1VWsjXdGp
33
+zYzoIvU1FZSDGVWIYIaTDKucBAZooKjzgDchU9YW/TwLVXeeMvGAnX7gSpnsUreI
34
+wiil2S0FFmWiWlKFUwVrNK3iKthuMngcMvamxgkYHi/KGdxwqew=
35
+=ihwx
36
+-----END PGP SIGNATURE-----

+ 83
- 0
static/gpg/sigs/content/post/2018-06-28-website-analytics.md.asc View File

@@ -0,0 +1,83 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "Public Infrastructure Updates"
6
+subtitle: "More transparent, more useful"
7
+date: 2018-06-28
8
+tags: [statusreport,update,misc,analyics,transparency]
9
+draft: false
10
+- ---
11
+
12
+# Full Disclosure
13
+
14
+We've been running [Matomo (link)](https://matomo.org/) for awhile now for basic analytics of our website (open source Google Analytics). It's alluded to on the transparency report but we haven't published login details for read only access.
15
+
16
+Why?
17
+
18
+Because Matomo is *not* accessible, has very 'heavy' dependencies (read: too much RAM usage for a proper lollipop) and is very difficult to deploy presently.
19
+
20
+We needed a live site for testing and our main website just so happens to receive traffic (<3 you all!) so it was a natural fit for testing.
21
+
22
+Our testing *failed*. We cannot recommend Matomo to our users.
23
+
24
+It's *not* accessible (very high learning curve, additional fluff features for non-marketing humans), is *not* lean for requirements (~200MiB of RAM usage) and really *not* suitable for an inexpensive lollipop.
25
+
26
+Our Matomo instance, database and deployment has been removed from our infrastructure and data deleted. Matomo is not the right path forward for the Lollipop Cloud.
27
+
28
+# Accessibility
29
+
30
+About a month ago KemoNine discovered [Fathom (link)](https://github.com/usefathom/fathom). It's a very straight forward web analytics package. Think Google Analytics/Matomo/Piwik but more accessible and lower hardware requirements. Kind of a perfect fit for the Lollipop Cloud project.
31
+
32
+Over the course of the last 2 weeks KemoNine has been working on building Fathom so it can run on ARM computer boards (Lollipops, Raspberry Pi, Orange Pi, others).
33
+
34
+As of this writing: *Fathom is usable on ARM boards thanks to KemoNine's efforts*.
35
+
36
+There were some bugs in Fathom, some updates to their build process and more. We've worked with KemoNine and the author of Fathom to get the bugs squashed and KemoNine has submitted code changes to add ARM support to the main Fathom project.
37
+
38
+You want this if you want simple, accessible analytics for your website. It's awesome. Lower requirements than Matomo/Piwik, can use Postgres and a non-toxic developer ([example](https://github.com/usefathom/fathom/issues/79)).
39
+
40
+# Transparency
41
+
42
+Based on the dev's feedback to KemoNine's inquiries, quality of the UI and accessbile nature of the software: this will be the path forward for the Lollipop Cloud.
43
+
44
+We have 2 instances of Fathom deployed. One for our main website and one for our Gitea instance. We have updated the transparency report to include our Fathom deployment details so you can take a look at our metrics (much like we have with Munin and resource usage/server status).
45
+
46
+You can also find details on how to view our Fathom deployments below.
47
+
48
+### Main Website
49
+Link : [https://web.fathom.lollipopcloud.solutions/](https://web.fathom.lollipopcloud.solutions/)
50
+
51
+Username : ```anon@anon```
52
+
53
+Password : ```anon```
54
+
55
+### Gitea
56
+
57
+Link : [https://git.fathom.lollipopcloud.solutions/](https://git.fathom.lollipopcloud.solutions/)
58
+
59
+Username : ```anon@anon```
60
+
61
+Password : ```anon```
62
+
63
+# Deploying Fathom Yourself
64
+
65
+KemoNine has updated our Gitea project [here (link)](https://git.lollipopcloud.solutions/lollipop-docker/fathom) with relevant details on how to deploy Fathom on a Lollipop Cloud instance. The details should be adaptable to other deployments too.
66
+
67
+Feel free to borrow and remix as you see fit.
68
+-----BEGIN PGP SIGNATURE-----
69
+
70
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyfoACgkQnXn79mHs
71
+Z3nkzxAAlMqQQ2utD9gZ9fCnLkz+WQQIcAff4BRHieyyRWY9ZGtLADaxJezvgzjI
72
+53213VSZ7eekQ/UuFRkENgdPUfXtNjsy+wEGFb+p0Y1adeXQGoOk+qww21q+RU9H
73
+YvEXv61lk4/cG4oKAoXdsqU3doUepQQQh6MjUWWD5si36W5AthTZpPzXWDz+19SZ
74
+P1sl1SwC867o1XAKp6Zd0buIaMljeeY4cZadupPmWXDUBPQFYbf81d0E+0eYEg8s
75
+JkzmGSPVIap1+PgRIofJ0aY5XjpAb8EC1JmslMjoGkJKxvd0VZm8ah6BgX9hB4r8
76
+g2Ot7kpHCpZdnHa0dvH7jrUGNyU9WUmxYzWcFYNteMC04Wdae9WenO0mVncRNV+q
77
+Q+JKR9vlUBdkBdxdIdeL0Xm5k86NKIt7wXpFiu6JdBob3STdMQColBpfgX+0kQhS
78
+7vIvdF6gs9GWjt16+AuyYp9QbQ+tBNgoUX8uEGG5PUxzCUFHFBCkc0d0+AaqP2rb
79
+gvXDa3c+iggglT87fE4XScmrYRrJvF0sX0nPKNbkplpQRkczeAbY1zGQma+1qtEp
80
+HM8TTdey9U983U7Xq4VzRTfZcPhWCaTJEcwvJMbZTwV1j5OpMYQkHKHwDz56IIxb
81
+JUu+zzM9Xd1JjXglfXku6b5dxyLVFMXLQj/MWAZsh5chYYNB6jo=
82
+=Kzlo
83
+-----END PGP SIGNATURE-----

+ 62
- 0
static/gpg/sigs/content/post/2018-06-29-help-welcome-guest-post-hoodie.md.asc View File

@@ -0,0 +1,62 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "The Power of One Word"
6
+subtitle: "Hoodie tackles wanted vs welcome"
7
+author: 
8
+  name: "hoodie aida kitten"
9
+  website: "https://www.patreon.com/hoodieak/"
10
+date: 2018-06-29
11
+tags: [guestpost,guest,accessibility,inclusivity,welcome]
12
+bigimg: [{src: "/avatar-hoodieak.png", desc: "a post by hoodie aida kiten"}]
13
+draft: false
14
+- ---
15
+
16
+Words are important, so much so that I probably don't even need to explain why.
17
+
18
+They can hurt people, they can make people feel safe, they can make people know how others feel about them, and most of all, they can convince people of things that otherwise would have no way to be communicated between people.
19
+
20
+So today, I want to talk about two different words, and describe why these words are so different, and why one is better than the other in a certain use-case.
21
+
22
+Consider these two statements.
23
+
24
+"help welcome" and "help wanted"
25
+
26
+Both are trying to communicate the same sentiment, honestly, but one comes across a bit less.. human.
27
+
28
+The reason behind it is that 'help wanted' is something the human brain will directly compare to other uses of the word 'wanted', and that can often mean a reader will parse this more similar to 'wanted criminal' than they will find it similar to 'we are excited to see you'.
29
+
30
+That's not a very good look, and thus wanted is often sub-optimal, when trying to make users feel like they are accepted, regardless of who they might be.
31
+
32
+There are reasons that wanted might be more accurate, in some situations, due to the connotation of 'being hard to find' that comes with the term, but welcome is a more positive spin on the matter. 'Wanted' implies that it should already have happened, in a way. Wanted criminals are wanted because they should have already turned themselves in, for example, in a perfect world. Welcome implies that if the criminal was to turn themselves in, they would get a bed to sleep in, and food, and be at least cared for, when they do approach the person in question, and as such, it is more likely to succeed.
33
+
34
+Welcome is a better word, but let's try to figure out why.
35
+
36
+The why of things is often the key to learning something meaningful from a situation, which is my reason for attempting to teach on this specific topic.
37
+
38
+'Welcome' is a word directly correlated to the concept of holidays, or being invited into one's home, and many other instances of someone being accepted for who they are, and offered something to show that acceptance.
39
+
40
+As such, 'welcome' always means a positive thing, while 'wanted' can just as easily be wholly negative.
41
+
42
+So now hopefully, we have learned something meaningful, and you can grasp why exactly you should use the word welcome instead of wanted, if you are writing, for example, a code of conduct, or a guide to how to contribute to an open source project.
43
+
44
+Thank you for listening,
45
+
46
+- -- hoodie aida kitten
47
+-----BEGIN PGP SIGNATURE-----
48
+
49
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyewACgkQnXn79mHs
50
+Z3m3eQ/8D64LHUnC3EhS5jKFYx+xjLOYjKdMEu1Hy+Fg8v+0BlWsxCPSAFz8iK3k
51
+1kX/TTDdjkmKuAcOvXIp4NxH1o0md7w8LLHuNx8KxXBwW0EVjIXL4QmqY66D1tig
52
+5mv2Go2Zz8Clfv/b4TS8+/6A38wtn3HKI9YS5rMKgXechjBQyUX+1zY08SBxlzwH
53
+i62YEQQd08e8DbX7UwLxVZq3bk7H9amTFSuLAwDFoenTh9KjUQRkEjqRDLDg8mMc
54
+DvL5WXMmdHUbEbRUJUvNVpheQtqON7kn1pmw7ROBdbTniS43wyfr0vjduLcRVg6k
55
+KE8D2ob5q2D77uYfTWT4CYdnXKc7+Fcw5wGvZVJtYam/LTMnekILsyMnFbrNw6XH
56
+jcrgo7UQ9pvD7TYs73KEfZM+huWvE6mTod2HT+tZJSzqevoYgSmz6E1KF5qun01y
57
+ffePLMlfgzDkJehrgvkGSNYG8vlau5rSOqqBQK7DEfxacwwlDUTwsZeFxPnRcO7y
58
+nx8v51xJNhk5ioZrtmRuzzQgUBnoELSKiPBdpm/E3fNTGBI+esiOp6Hubn6aUQJB
59
+Zg311Nt/MVwufJ6j46bs3u7ucqP/FDEDQAIauBhTiPMDZ+EcGf0BqRH7xmErByIs
60
+wXYpgVXGzWMVi/E1BENri2KkLuWFRNPiumpr1KZDKVwref10vCY=
61
+=cNOf
62
+-----END PGP SIGNATURE-----

+ 32
- 0
static/gpg/sigs/content/post/2018-07-02-new-team-member.md.asc View File

@@ -0,0 +1,32 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "Welcome jmf!"
6
+subtitle: "Yay!"
7
+date: 2018-07-02
8
+tags: [statusreport,update,welcome]
9
+draft: false
10
+- ---
11
+
12
+We're pleased to announce jmf has joined the Lollipop Cloud team!
13
+
14
+They have been a *huge* help, contributor and advocate of accessibility since before the public launch of the Lollipop Cloud project. They've also kept KemoNine in check ;)
15
+
16
+They've been granted moderator status in XMPP/Matrix and we are working with them to get them the approprate, elevated privileges on our other public services.
17
+-----BEGIN PGP SIGNATURE-----
18
+
19
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpye8ACgkQnXn79mHs
20
+Z3kQUhAArLSVbdGZkWKKCh/iLjI4D4xbQibztEZj5lzWP833Y/XVQ/m3oxq/wmUB
21
+aUVnZ5jphT6nQcet2Gu0JG2qVwfzr7RPiaQsxyv5NPNL/Gdvl93iFoHTk+vkKO5v
22
+jqjJLxSaLM2wkrgtnLOJzyLevX7422/03HhVa3brXk83+gx6oMOqXs2F19h9vuiU
23
++HyYhn9A02TUjvVrw/QFtm2MTUCVEw/LqC64r5LoZgGR47kyenk3LGdeqpYQeSjX
24
+A1iB+eeY5FX6qrB7kD7fS4PomGRwa9FLHByUxiViDi/9RlnesGnO3ilcDxf4oNG2
25
+LaeayTMlCmd9uty3xPqequbvEP8kuMDj+E7vzhvilAWeyI4Q3gJeqNvuc4+4tJDM
26
+izW7DnYCvxUjRl6c6hIR7az1Xt963eGTKSpIN7urDqQ1ZkWQST57U4+tR+RBVtCa
27
+1b1F1avE69VzQy9rLYHFZN8VODi6sWhVttgXjxgZjUq3RAMmeBqYdfeHYCGp7rUW
28
+8Oy8KErC7AWcNPJscxlWCEtbJ+gaBmIaBYxNcrhzQpWUbj5GmGKobtM5tM/A2vIC
29
+TN5PfHzLfjnHN7kcYRqRbwRxUr5JUNlVp8gn5wvh33mDiwD1jA06SbJ+IxNbwgbW
30
+zvXJ8Kq/+SbYF3nREQScduhWNtvKkltTxqchHQW/CJLt7GpZ4Rk=
31
+=NM3X
32
+-----END PGP SIGNATURE-----

+ 117
- 0
static/gpg/sigs/content/post/2018-07-23-bus-problem.md.asc View File

@@ -0,0 +1,117 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: "The Bus Problem"
6
+subtitle: "Warning: Death discussion within"
7
+date: 2018-07-23
8
+tags: [infra,update,planning]
9
+draft: false
10
+- ---
11
+
12
+# Warning
13
+
14
+Death is mentioned in this post and is a bit of a theme. Stop reading *NOW* if you'd prefer to avoid the topic.
15
+
16
+# Bus Problems and Trust
17
+
18
+Ever since KemoNine launched the Lollipop Cloud as a public project they have been acutely aware of our "[bus problem (link)](https://en.wikipedia.org/wiki/Bus_factor)." Stated another way: "Continuity." Yet another way: "What happens when KemoNine dies?"
19
+
20
+We have been hard at work reducing spoons, matches and cost surrounding self hosted clouds. We strive to make this technology stuff more accessible for all humans. We are especially sensitive to the needs of those at risk or managing disabilities or nomadic. [Spoon theory (link)](https://en.wikipedia.org/wiki/Spoon_theory) and [matchstick theory (link)](http://trexismyspiritanimal.com/2016/12/20/matchstick-theory/) being key examples of our focus. KemoNine is big on trust (dangerously so, trust us). How can you trust us if the project could die if any one of our team members dies?
21
+
22
+Think on that a moment.
23
+
24
+If you rely upon a project, software, etc but if a sole human dies; so does the project. What then? Can you replace that project? Are there even alternatives? Does that reduce or increase you risk profile?
25
+
26
+KemoNine founded the Lollipop Cloud project with these concerns in mind. They have been on their brain since before jmf joined as an official team member. They also know that this project can succeed but requires a large amount of trust from the users (you!).
27
+
28
+Can you honestly trust this project if KemoNine dies, that's the end?
29
+
30
+Of course not! You can't!
31
+
32
+Up until the point that [jmf](https://lollipopcloud.solutions/post/2018/07/welcome-jmf/) joined the official lollipop team, KemoNine was the only human with access to key resources of the project. Simply put: KemoNine *was* (past tense!) the [benevolent dictator (link)](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life) and if dead so too was the project. This is bad! Very bad!
33
+
34
+# Don't Panic
35
+
36
+The last paragraph is *past* tense. KemoNine is course correcting. Even as you read this blog post the wheels are in motion to ensure the Lollipop Cloud doesn't die with KemoNine.
37
+
38
+This project was born from a random idea to solve a specific problem. As it was shown to others KemoNine was prodded into making the project official. After a few months a small user base and support system developed. jmf came on board as a core team member and the rest is mostly history.
39
+
40
+These events are the foundation of a project with potential. So much potential that KemoNine is *worried* about the project surviving them. Over the last month KemoNine has been quietly working with jmf to ensure the Lollipop Cloud is wholly independent as a project. Wholly independent in a way that allows jmf to take the reigns and carry the project forward if KemoNine dies (gets hit by a bus). This is obviously not something we wish to see happen, but it can happen...
41
+
42
+It's a situation that scares KemoNine deeply. They asked jmf if they were comfortable taking the reigns to ensure continuity if something happens to them. The answer was and remains "hell yes!".
43
+
44
+# It's Official
45
+
46
+This post is our official announcement.
47
+
48
+jmf will succeed KemoNine if KemoNine dies, leaves the project, etc.
49
+
50
+The project can carry forth without KemoNine if necessary.
51
+
52
+The Lollipop Cloud project *will* continue if something happens to our key contributors, hosting account contacts, etc. We are building a diverse community of humans working together. The project is more than KemoNine, jmf, or anyone else. It's the whole of contribution from *EVERYONE*: public, private, or anonymous.
53
+
54
+Continuity is part of the trust our users allowed us to earn. We will continue to earn and work to ensure the trust is not broken.
55
+
56
+# Additional Details
57
+
58
+That stated, we have some additional detail for the curious. We are big on transparency and the following are some details on how we have structured the project for continuity to ensure KemoNine is wholly accountable in their role as a founder. These are also the measures we've taken to ensure the project can continue in the absence of KemoNine.
59
+
60
+- - We now have a dedicated fall back e-mail address on a secondary domain for *ALL* accounts the project has with providers (hosting and otherwise).
61
+- - We have dedicated registrary (DNS) and hosting accounts that are just for the Lollipop Cloud project. These accounts are tied to the e-mail address in the previous bullet.
62
+- - *ALL* of the Lollipop Cloud infrastructure and hardware is 100% isolated from non Lollipop Cloud infrastructure.
63
+- - *BOTH* KemoNine and jmf have full access to all official Lollipop Cloud e-mail addresses and critical accounts.
64
+  - At this time jmf has to jump through a few small hoops to take control of the infrastructure in totality. This will be changing ASAP. KemoNine is hard at work on this item currently.
65
+- - KemoNine has purchased a pair of Nitro Key Storage devices for continuity needs and accountability needs. They will be deployed ASAP to
66
+  - Ensure *ALL* Lollipop Cloud accounts, passwords, etc, are properly secured (they live on a secure Veracrypt device as of 2018/07/23) via a hardware token
67
+  - Allow account information to be properly shared between KemoNine and jmf to ensure continuity if anything happens to either human
68
+  - Ensure secret keys for ssh and other key services remain secure and not leaked
69
+  - Ensure *ALL* core team members have necessary access and secure hardware necessary for ensuring the integrity of the Lollipop Cloud project sources, infrastructure, and more
70
+
71
+# In Closing
72
+
73
+Some words from KemoNine...
74
+
75
+```
76
+<KemoNine>
77
+```
78
+
79
+I don't speak in the first person much and I have a habit of clearing all official Lollipop Cloud posts with jmf and others who have been a great support and wonderful resources.
80
+    
81
+If you will let me... these are my words, straight from my pen/keyboard
82
+
83
+The Lollipop Cloud was born of a "small" hobby project that solved a problem I was having. As I discussed this "little" project with others the support, question and potential started to take form.
84
+
85
+I launched the Lollipop Cloud as a small open software project a couple (few?) months ago and started posting about it more publicly. It gained traction far faster than I ever imagined. I'm still surprised, shocked, grateful and humbled at the response this project has, and continues, to receive.
86
+
87
+As the project progresses and grows I want to ensure it is here to stay for the long term. I"ve been around technology long enough to have seen more than one project disappear if a founder disappears, leaves or dies. I've seen them all.
88
+
89
+I'm not the type of human to be OK with any of these situations. If something happens to me, this project and community deserve to continue and carry on without me.
90
+
91
+Because I feel strongly about this project with or without me, I've been hard at work for awhile to ensure this belief holds true. There are a couple gaps but at this time jmf has enough access to take things over and ensure the project doesn't disappear or fail if something happens to me.
92
+
93
+I am working on finalizing a few things to make things easier for jmf if something happens to me. They should be complete within the next few weeks.
94
+
95
+I am committed to ensuring the success of the Lollipop Cloud project well into the future. Even if I'm gone.
96
+
97
+Thanks to *EVERYONE* who's helped, supported and been a great human along the way. I owe you much. This official project is more your doing than mine.
98
+
99
+```
100
+</KemoNine>
101
+```
102
+-----BEGIN PGP SIGNATURE-----
103
+
104
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpygEACgkQnXn79mHs
105
+Z3nQ2RAAmiXJJTIoB63RJPa9RXBZznvvu24ZpP9T1eZn2Wjri34ZOSzXI0KyFTah
106
+Lbib15FAXvprof2scPr84iScw4bzDl2TPsNkV3Smhqf4QkYSbHYLeErmlcl1a2EO
107
+uvWQGMiSOGEV/K7JwIZ1nBNSOEQSdLM18x4uhnxlCTCr7y7Z53yUf4I0vR25wk/2
108
+00nroSCCcfC9klyestbeSSUsQ6tQtqxRlh41zDDF8LXTPs+lnIp0fIb+tUFJJwjq
109
+534z2c+S7lVKyMfd7rZ4d7DSNJOquWMWLsT8Bf2kyccobeM1KOzdrFlbXnpcQBa9
110
+gplYvBD6KeCoM2lRRfOq0xAHiMc4PYXWPs/+8jTbw4s5K4QXMUc1A1eN68D5bQAM
111
+nvhCPEhbmqlb26hmjuujaRYs4ICq23Rw7tdYWXVhQWMcCTO3vwyCBUDT4pyp1Kot
112
+84Quv+uT9kqhLcsF7omdHtB2h6YazzKRnVe+br4TkkTf8IMjpQBB3MLOvbdOWnQJ
113
+2033B1jtHPbkPTHx41eWZofcUiWYiUKmDVuHzw5egBGyON5N32PMh+X/x8dSHzya
114
+kS/um58ArhaUec22faIBuTUMbNvfV7JRu0fCVI+hVTAo/OL1TzhOpkyLQUPqlvu5
115
+8skEctlv46m90IQn40H8bV7HbvR+dnhHg73KTOAuQgbvcxmukNw=
116
+=Ktin
117
+-----END PGP SIGNATURE-----

+ 90
- 0
static/gpg/sigs/content/post/2018-08-06-jmf.md.asc View File

@@ -0,0 +1,90 @@
1
+-----BEGIN PGP SIGNED MESSAGE-----
2
+Hash: SHA256
3
+
4
+- ---
5
+title: A Status Update and a Thank You
6
+subtitle: jmf can't be stopped
7
+date: 2018-08-06
8
+tags: [jmf,update,docs,website,boards,trust]
9
+draft: false
10
+- ---
11
+
12
+# Thank you, jmf
13
+
14
+Even before jmf officially joined the Lollipop Cloud team, they were contributing to the project. Over the last 3-4 months jmf has been a *HUGE* asset and have done a *LOT* of work quietly ensuring our website and documentation continue to evolve and improve. From the moment they found out about the Lollipop Cloud project, they have been involved. We cannot express gratitude in words well enough to do justice by jmf.
15
+
16
+jmf has also quietly pushed to ensure we have a proper download site, a way of verifying the integrity of our project's output (blog posts, public downloads, etc), and more. They have kept a fire under others butt's so these critical items of infrastructure for the project were addressed, accessible, and complete in a timely manner.
17
+
18
+Thanks to their hard work and dedication, our project continues to improve, evolve, and become more accessible to individuals without extensive technical knowledge or access to expensive, cutting edge equipment.
19
+
20
+# Documentation Updates
21
+
22
+jmf has been on a mission to improve the accessibility of our documentation, has worked to improve the initial install, setup processes, and overall clarity. Their amazing documentation and work can be found on [our official documentation repo (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs).
23
+
24
+# Website Update
25
+
26
+jmf recently finalized our code of conduct with input from the community, and we have added it to the website. You can find [the full CoC text here (link)](https://lollipopcloud.solutions/page/coc/), as well as in [our documentation code repo here (link)](https://git.lollipopcloud.solutions/lollipop-cloud/docs/src/branch/master/code-of-conduct.md).
27
+
28
+It's pretty simple: we welcome *all* and will not tolerate unkindness, bigotry, or bullying, which hinders innovation, contributions, and progress.
29
+
30
+# Official Boards
31
+
32
+After much testing, discussion, success, failure, and inspiration... we are happy to announce the boards we will officially support!
33
+
34
+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.
35
+
36
+## Orange Pi PC Plus
37
+
38
+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.
39
+
40
+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.
41
+
42
+This is our recommended board for deploying a Lollipop Cloud, especially for our beginner users.
43
+
44
+## Orange Pi Plus 2e
45
+
46
+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.
47
+
48
+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.
49
+
50
+## O-Droid HC2
51
+
52
+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.
53
+
54
+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.
55
+
56
+## Orange Pi Zero Plus
57
+
58
+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.
59
+
60
+This is a great choice if you're looking for something pocket sized and/or minimal.
61
+
62
+# Download Site
63
+
64
+As part of the infrastructure updates we also setup [https://dl.lollipopcloud.solutions](https://dl.lollipopcloud.solutions). At present you'll find our builds of Borg and Armbian along with sha256 hashes of the files and GPG signatures of the files. As part of the process of improving accessibility of the Lollipop Cloud we will be creating customized Armbian builds as well as our own builds of borg. These 2 pieces of software are very difficult to build on a Lollipop (because they use a LOT of resources) and can be difficult to implement without some additional guidance.
65
+
66
+Our goal is accessibility, and this is a first step towards improving the accessibility of both Armbian and Borg.
67
+
68
+# Integrity Checks / Verification / GPG
69
+
70
+We have been hard at work fine tuning our approach to continuity. We now have dedicated Nitro Key Storage USB tokens for our core team members (jmf and KemoNine as of this writing) which house all of our passwords, GPG signing keys and a little more.
71
+
72
+The Nitro Key Storage is an open design and was selected because it allows our team members the ability to keep our passwords safe while giving our team members a GPG hardware token along the way.
73
+
74
+You should start seeing more GPG signatures appearing on our git repos, website and download site. We will be sure to devote some blog space to this topic once things are 100% and are fully implemented by our team. Our plan is to ensure each of our team members are setup with a GPG key for signatures, encryption and authorization. The goal being *ALL* of our public facing services, data, etc will be fully signed so our users can verify the integrity of everything we publish.
75
+-----BEGIN PGP SIGNATURE-----
76
+
77
+iQIzBAEBCAAdFiEELc4loVuHLVv1kroAnXn79mHsZ3kFAltpyfwACgkQnXn79mHs
78
+Z3kgmw/+OlNCt1OdSkZ2zmjdexbWMnulyP52wu6Wyi45G/M5yJf3WUMu+MTW/guB
79
+AIcu4UUEcsdGLWu1g9lqCXaYNwt2QW5lwJU5CA+3wCGCjGGLkQdG1jLO+KRJ/9EZ
80
+22h6dBT1JvyvasDKGpilqyu6v0wRSUI/hkI3VvJC2i6MVuSWDdg4GWIcFAa95sJN
81
++RZzFgw338OEplyhwsrGf7oN+DjxNNCNYJKXH/6e4XyQU/5P6iB1w2aqQmGQ4cd4
82
+o6UuJAzqD1+Nzw1Ae9Uiou+n10DcK7hH6bG2drpNf2ECuTwV1U+y76EYXL8d0ihn
83
+2Z1G8dud8O6guM3MYKBqie6S32M/8szriXB02fF56BG3GPA+fjiCvSSwRXNic14f
84
+DEfj43+TWC/jqvqZtX5mDt1YAna9JflNDX1K7g9/kr0ySObaKAfc1CErbEKfBCB2
85
+JZTgZoaZu6kBrFLcjlwsB/3GEz/M+BTgbdNua0GuaiSKbXQA3TzCzigw0Vf8nBOq
86
+DudD5Na9Wo45GCU/uTeUoNz75I3Jsjm8vJlFLsYZcn5fdCLT9LeNbIhOYaOECvX1
87
+EKH7d6AlrRiEANw5AdzDcLNy6Fh3m28Nv3lrd1VPVJlqyXk7Co5/ZWspr3W54K85
88
+lzs4abh1n8hgzP/DrGUsJrTv8VHfZvSzNhG1a5jHlr7+lo/FQXg=
89
+=74Mq
90
+-----END PGP SIGNATURE-----

+ 14
- 0
themes/beautifulhugo/layouts/partials/footer.html View File

@@ -30,6 +30,20 @@
30 30
           </li>
31 31
           {{ end }}
32 32
         </ul>
33
+
34
+        {{ if or (.Params.nosigs) (eq $.File.Path "")}}
35
+        {{ else }}
36
+        <p class="text-center">
37
+          <a href="{{ replace (printf "/gpg/sigs/content/%s.asc" $.File.Path) "\\" "/" }}">
38
+            <span class="fa-stack fa-lg" aria-hidden="true">
39
+              <i class="fa fa-circle fa-stack-2x"></i>
40
+              <i class="fa fa-key fa-stack-1x fa-inverse"></i>
41
+            </span>
42
+            <span>Signed Content</span>
43
+          </a>
44
+        </p[>
45
+        {{ end }}
46
+
33 47
         <p class="credits copyright text-muted">
34 48
           {{ .Site.LastChange.Format "2006" }}
35 49
 

Loading…
Cancel
Save