Compare commits

..

196 Commits

Author SHA1 Message Date
daea06eae8 Merge branch 'main' into google-drive-blog-post 2021-05-10 10:31:04 +02:00
b1b597d6d6 Merge pull request 'Update dependency docker-compose to v1.29.1 (main)' (#67) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #67
2021-04-16 09:12:12 +02:00
38cc2c5ec8 Update dependency docker-compose to v1.29.1
Some checks failed
renovate/artifacts Artifact file update failure
2021-04-15 07:00:29 +00:00
6f6a3b2e5e Merge pull request 'Update dependency docker-compose to v1.29.0 (main)' (#66) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #66
2021-04-07 11:56:42 +02:00
c338187c51 Update dependency docker-compose to v1.29.0
Some checks failed
renovate/artifacts Artifact file update failure
2021-04-07 07:00:31 +00:00
d27d98d3e9 Bump ruby version
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-06 13:23:44 +02:00
c2a163776c Merge pull request 'Update ruby Docker tag to v2.7.3 (main)' (#65) from renovate/main-docker-ruby-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #65
2021-04-06 13:06:01 +02:00
d41de3cfd9 Update ruby Docker tag to v2.7.3 2021-04-06 07:00:32 +00:00
bd73042dd4 Merge pull request 'Update dependency docker-compose to v1.28.6 (main)' (#61) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #61
2021-03-24 09:36:58 +01:00
1e55036a21 Update dependency docker-compose to v1.28.6
Some checks failed
renovate/artifacts Artifact file update failure
2021-03-24 08:00:29 +00:00
fc59c56df8 Fixed typo
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-16 15:44:24 +00:00
332e385657 Merge pull request 'Update dependency docker-compose to v1.28.5 (main)' (#60) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #60
2021-03-02 10:10:18 +01:00
991e2bb332 Merge branch 'main' into renovate/main-docker-compose-1.x 2021-03-02 10:10:01 +01:00
98dd76b300 Add some additional links
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 14:15:00 +01:00
ade028c8cb Fix missing word
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 14:12:53 +01:00
e1d76ff40e Added links at the bottom
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 12:43:21 +00:00
3wc
a78c94250b Small fix to Co-op Cloud blog post
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 14:24:02 +02:00
6b6853be22 Fix for wording around Cloudron
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 13:10:27 +01:00
5891093a60 Add missing title
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 13:08:47 +01:00
897ba19972 Fix up the date
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 13:01:12 +01:00
ce6f92aa12 Add the -
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 13:00:34 +01:00
2db78105f7 Merge pull request 'Add Coop Cloud blogpost' (#57) from coop-cloud into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #57
2021-03-01 12:56:18 +01:00
f39ea6d07d Update dependency docker-compose to v1.28.5 2021-03-01 08:00:35 +00:00
6b5a47d86b Go librepunk 2021-02-24 11:44:04 +01:00
e2a43e9ad1 Add matrix room 2021-02-24 11:44:04 +01:00
ca4d5ddb80 Fix links 2021-02-24 11:44:04 +01:00
3da62d7688 Avoid repeating the name here 2021-02-24 11:44:04 +01:00
949ea30680 Use apps instead of applications 2021-02-24 11:44:04 +01:00
fe205e1ac1 Additional changes 2021-02-24 11:44:04 +01:00
d533b5988e Additional fixes 2021-02-24 11:44:04 +01:00
cc2425e1cd Lots of edits 2021-02-24 11:44:03 +01:00
2d86a3ed56 Strip screencast placeholder and format 2021-02-24 11:44:03 +01:00
3wc
308213ed9b Revisions to CoopCloud blog post 2021-02-24 11:44:03 +01:00
e91e38a785 Add Coop Cloud post
Closes #55.
2021-02-24 11:44:03 +01:00
1cb687fd25 Merge pull request 'Update dependency docker-compose to v1.28.4 (main)' (#59) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #59
2021-02-19 12:20:14 +01:00
05cfeaeae3 Update dependency docker-compose to v1.28.4 2021-02-19 08:00:35 +00:00
ad0f285fb1 Merge pull request 'Update dependency docker-compose to v1.28.3 (main)' (#58) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #58
2021-02-18 09:42:16 +01:00
ab8b9c717e Update dependency docker-compose to v1.28.3 2021-02-18 08:00:49 +00:00
34328a1dea Merge branch 'main' into google-drive-blog-post 2021-02-16 13:19:25 +01:00
1060130197 Inital draft of google drive post 2021-02-11 16:23:43 +00:00
6d389047cb Inital google drive post 2021-02-11 14:31:17 +00:00
266b936312 Fix indentation
All checks were successful
continuous-integration/drone/push Build is passing
2021-02-01 09:42:51 +01:00
2fce0586d8 Revert "Handle dependencies for notifications"
All checks were successful
continuous-integration/drone/push Build is passing
This reverts commit b4b5d32780.

Actually, this is not required since it is all the same pipeline.
2021-01-29 13:32:45 +01:00
b4b5d32780 Handle dependencies for notifications 2021-01-29 13:31:17 +01:00
f9452dd2c5 Merge pull request 'Update dependency docker-compose to v1.28.2' (#52) from renovate/docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #52
2021-01-27 12:23:53 +01:00
75db99c4e1 Update dependency docker-compose to v1.28.2
Some checks failed
continuous-integration/drone/pr Build is failing
2021-01-27 08:00:43 +00:00
9559396132 Fix link to main branch
All checks were successful
continuous-integration/drone/push Build is passing
Closes #51.
2021-01-26 21:58:16 +01:00
dcbdf635ac Switch to main
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-26 13:38:00 +01:00
75b63c9771 Revert "REVERT ME: testing failures"
All checks were successful
continuous-integration/drone/push Build is passing
This reverts commit 27194cbae5.

This has been tested.
2021-01-26 13:37:32 +01:00
27194cbae5 REVERT ME: testing failures
Some checks failed
continuous-integration/drone/push Build is failing
2021-01-26 13:30:03 +01:00
8d73dd3df5 Setup notifications for failure 2021-01-26 13:30:03 +01:00
a4aa3d669f Merge pull request 'decisions-blog-post' (#47) from decisions-blog-post into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #47
2021-01-26 12:50:43 +01:00
9d0e1fee73 Merge branch 'master' into decisions-blog-post
Some checks failed
continuous-integration/drone/pr Build is failing
2021-01-26 12:44:45 +01:00
21b671d945 Use the same image all over the place
All checks were successful
continuous-integration/drone/push Build is passing
Closes #48.
2021-01-26 12:22:10 +01:00
158fef9027 Bump compose version 2021-01-26 12:17:40 +01:00
838ec1c79c Additional corrections
Some checks failed
continuous-integration/drone/pr Build is failing
2021-01-25 18:56:44 +00:00
610ef2a861 Couple of small corrections
Some checks failed
continuous-integration/drone/pr Build is failing
2021-01-25 18:46:30 +00:00
e1a641a7bf Reverted Gemfile hack which I accidentally included in my commits. Doh.
Some checks failed
continuous-integration/drone/pr Build is failing
2021-01-25 18:42:05 +00:00
c66df7c0fd First draft of blog post 2021-01-25 18:40:21 +00:00
9846416b36 Added rough draft 2021-01-25 18:20:44 +00:00
2be7acd2c2 Added inital decisions 2021-01-21 15:50:15 +00:00
d1674c5402 Updated gpdr.md
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-21 14:03:51 +00:00
3ceb87faca Updated terms page
All checks were successful
continuous-integration/drone/push Build is passing
2021-01-21 13:37:57 +00:00
3b25b71b18 Updated privacy page 2021-01-21 13:28:23 +00:00
d5ebafae77 Fixed typos in privacy.md 2021-01-21 13:21:44 +00:00
84e371154f Merge pull request 'Update dependency docker-compose to v1.28.0' (#44) from renovate/docker-compose-1.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #44
2021-01-21 11:54:06 +01:00
2faa90b0fa Update dependency docker-compose to v1.28.0
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/pr Build is failing
2021-01-21 08:00:37 +00:00
792674d6b5 Try @file once more
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 13:24:15 +01:00
007646b26e Try without @file
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 13:14:18 +01:00
227e84ff63 Try to be explicit for the options
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 13:07:24 +01:00
81d8caf946 Shuffle this security label once more
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 12:56:05 +01:00
d5dc6d540d Use correct label
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 12:51:12 +01:00
acafb427a5 Run lock on gemfile
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 12:44:33 +01:00
b3956b91f2 Upgrade ruby
All checks were successful
continuous-integration/drone/push Build is passing
2020-10-27 12:41:39 +01:00
49350a1cbc Add security middleware
Some checks failed
continuous-integration/drone/push Build is failing
2020-10-27 12:38:07 +01:00
56bafa3e84 Merge pull request 'Update ruby Docker tag to v2.7.2' (#42) from renovate/docker-ruby-2.x into master
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #42
2020-10-05 10:42:52 +02:00
961cf1a54d Update ruby Docker tag to v2.7.2
Some checks failed
continuous-integration/drone/pr Build is failing
2020-10-05 07:00:21 +00:00
a3489c9aa4 Merge pull request 'fix Matomo typo' (#41) from aadil/autonomic.zone:fix-typo into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #41
2020-09-27 08:08:08 +02:00
2d24baa5ce fix Matomo typo
Some checks failed
continuous-integration/drone/pr Build is failing
2020-09-27 08:05:35 +02:00
05c26544ff Use new deploy key name
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-25 14:20:18 +02:00
56eaeadfcb Use latest tags
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-25 13:16:12 +02:00
fd09a12a24 Merge pull request 'Update dependency docker-compose to v1.27.4' (#40) from renovate/docker-compose-1.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #40
2020-09-25 09:37:30 +02:00
864cffb9b5 Update dependency docker-compose to v1.27.4
Some checks failed
continuous-integration/drone/pr Build is failing
2020-09-25 07:00:37 +00:00
076234aef4 Update deployment
All checks were successful
continuous-integration/drone/push Build is passing
2020-09-23 09:56:14 +02:00
0d4ee2b0a1 Merge pull request 'Update dependency docker-compose to v1.27.3' (#39) from renovate/docker-compose-1.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #39
2020-09-21 10:29:04 +02:00
c6f5ccf4aa Update dependency docker-compose to v1.27.3
Some checks failed
continuous-integration/drone/pr Build is failing
2020-09-21 07:00:52 +00:00
c1267c5366 Merge pull request 'Update dependency docker-compose to v1.27.2' (#38) from renovate/docker-compose-1.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #38
2020-09-13 10:58:04 +02:00
cabc8efdb7 Update dependency docker-compose to v1.27.2
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/pr Build is failing
2020-09-13 08:57:30 +00:00
737b7e1edf Merge pull request 'Configure Renovate' (#37) from renovate/configure into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #37
2020-09-13 10:56:43 +02:00
91eca81fc6 Add renovate.json
Some checks failed
continuous-integration/drone/pr Build is failing
2020-09-13 08:56:18 +00:00
911ac06b14 Fixed links in privacy and terms pages
All checks were successful
continuous-integration/drone/push Build is passing
2020-08-15 11:26:46 +01:00
420b4da5dd Fixing page layouts in privacy, terms, gdpr pages
All checks were successful
continuous-integration/drone/push Build is passing
2020-08-15 11:18:09 +01:00
210afaf16a Merge pull request 'Add basic policies to the website' (#34) from policies into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #34
2020-08-28 19:28:02 +02:00
c17eda92b5 Added more spacing
Some checks failed
continuous-integration/drone/pr Build is failing
2020-08-06 17:21:01 +01:00
0b5e27e0c1 Added footer links
Some checks failed
continuous-integration/drone/pr Build is failing
2020-08-06 17:08:52 +01:00
2ae36bade9 Drop PR builds
All checks were successful
continuous-integration/drone/push Build is passing
Closes #36 (comment).
2020-08-04 14:47:28 +02:00
77d85db350 Add terms of service
Some checks failed
continuous-integration/drone/pr Build is failing
2020-07-02 13:29:14 +01:00
43a19d64c8 Added GDPR privacy notice 2020-07-02 13:29:00 +01:00
7a53515307 Added terms of service 2020-07-02 13:11:56 +01:00
c700c414ff Added website privacy policy 2020-07-02 13:11:05 +01:00
b3bed6d48e Ignore the nojekyll file too
All checks were successful
continuous-integration/drone/push Build is passing
Follows https://github.com/keybase/keybase-issues/issues/366#issuecomment-39060720.
2020-06-28 21:31:59 +02:00
3ae5a6e803 Added .nojekyll file
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-28 00:20:26 +01:00
74949d9595 Added pip3 instead of pip to CONTRIBUTING.md
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-28 00:05:11 +01:00
a5fe6f88a5 Added folder directory for well-known in _config.yml
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:57:18 +01:00
8037032778 Formatting improvement
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:41:03 +01:00
bc2e8759b2 Include .well-known
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:32:22 +01:00
a5f62f6bdc Deleted typo directory
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:19:43 +01:00
c20ca831c6 Fix spicy well-known directory typo
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 23:02:47 +01:00
b1217dcbcd Added Matrix well-know file
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-27 22:54:23 +01:00
e9d0088195 Migrating to swarm setup
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-24 15:20:24 +02:00
6c169e26d0 Drop the bumping, just deploy same tag
All checks were successful
continuous-integration/drone/push Build is passing
2020-06-12 16:07:37 +02:00
b6ad82d86f Use valid name
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-16 17:44:21 +02:00
f19aa81657 Fix path
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:42:38 +02:00
3fded72105 Slim down compose configs
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:41:19 +02:00
a5740aea02 Fix stack name 2020-05-16 17:39:58 +02:00
2a72bac756 Revert "Reset to dokku deploy for now"
This reverts commit 9f42ecaa77.

Actually, while moving to the swarm setup, we can't go back so easily.
Sooooo, reverting this and waiting for the migration to go ahead.
2020-05-16 17:39:03 +02:00
78ea06871a Rename to follow ecosystem
Some checks failed
continuous-integration/drone/push Build is failing
2020-05-16 17:32:55 +02:00
9f42ecaa77 Reset to dokku deploy for now 2020-05-16 16:57:49 +02:00
9a8bcdc66c Merge pull request 'Configure Renovate' (#30) from renovate/configure into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-07 12:04:44 +02:00
27a36aeaaa Exclude PRs for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-07 12:03:00 +02:00
0f2a7a6df1 Add renovate.json
Some checks failed
continuous-integration/drone/pr Build is failing
2020-05-07 10:02:12 +00:00
558b71934d Add notes on bump
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-02 18:35:50 +02:00
15c9d4a153 Build the tag
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-02 18:31:46 +02:00
fd54672540 Fix version
[ci skip]
2020-05-02 18:30:00 +02:00
3667ee109c Resolving dev/prod final issues
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:47:02 +02:00
ff4617f318 Centralise the docker image 2020-05-01 13:41:07 +02:00
333f000fcf Build and deploy image
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:39:33 +02:00
b529e2f2e8 Point to deploy docs
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-01 13:31:52 +02:00
e9a1b2e369 Fix stack name 2020-05-01 13:31:28 +02:00
351251f54f Unleash the CI 2020-05-01 13:31:06 +02:00
16339ecc2e Zomg get it finally working for production 2020-05-01 13:30:54 +02:00
d6a8259e08 Use only the single URL 2020-05-01 12:52:13 +02:00
803bf41e61 Disable CI for now 2020-05-01 12:51:35 +02:00
fa6a2e120e Absolutely blowing things up on the way to docker-compose setup 2020-05-01 12:47:10 +02:00
20ed2d29b1 Fix typo 2020-05-01 12:41:54 +02:00
188b461c58 Trying to get the volume work in prod 2020-05-01 12:41:54 +02:00
b87d648a7d Use local mount and drop commands onto new lines 2020-05-01 12:41:54 +02:00
b72febc4c8 Just try watch too 2020-05-01 12:41:54 +02:00
076a6954f4 Build and trace 2020-05-01 12:41:54 +02:00
a85b656af8 Use port only 2020-05-01 12:41:54 +02:00
cc3066bb1d Fix the labels 2020-05-01 12:41:54 +02:00
886fb51ed6 Use the exposed port 2020-05-01 12:41:54 +02:00
5b7ee79c5d Move to a docker-compose setup 2020-05-01 12:41:54 +02:00
34aca195ce Merge pull request 'Added rss feed icon to footer' (#29) from rss-icon into master
All checks were successful
continuous-integration/drone/push Build is passing
One issue that I have caused, is there is a lot of inline styling going on with the footer icons. I'll need to clean that up later on but it isn't the end of the world for now. The next time we touch it though, might be worth just adding some css to handle the issues.
2020-04-30 19:47:46 +02:00
87b6978506 Added rss feed icon to footer 2020-04-30 01:39:01 +01:00
5a6986db29 Fix URL
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-25 14:03:23 +02:00
6f9bf2d4db Grammar, typos and a link to git.autonomic.zone
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-25 13:59:44 +02:00
a303c4eaec Merge pull request 'Add datpy post' (#27) from add-datpy-post into master
All checks were successful
continuous-integration/drone/push Build is passing
Looks great to me!
2020-04-25 13:51:01 +02:00
1eb1a0ef8c Add datpy post 2020-04-23 16:53:19 +02:00
68a8df1fb1 Build first before serving
[ci skip]
2020-04-23 13:48:24 +02:00
c7579b87b5 Remove unused variables
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 13:37:54 +02:00
9b7b8e289d Run make build only once 2020-04-23 13:37:36 +02:00
06e53cd9bc Merge pull request 'Revert "Add freenode URL"' (#26) from revert-freenode-addition into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 12:31:53 +02:00
a60aef66b0 Revert "Add freenode URL"
This reverts commit 3cbc9adc49.

See #23 (comment).
2020-04-23 12:30:12 +02:00
5ff502bc72 Merge pull request 'Add freenode URL' (#23) from add-free-node-logo into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-23 12:10:29 +02:00
3cbc9adc49 Add freenode URL
Closes #21.
2020-04-23 10:00:43 +02:00
55c8859f07 Merge pull request 'Add make stop and allow --incremental' (#20) from stop-and-incremental into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 19:47:14 +02:00
9f1dd6284b Add make stop and allow --incremental
[ci skip]
2020-04-18 19:45:22 +02:00
8463aa2342 Merge pull request 'Added RSS feed for blog section' (#19) from rss-feed into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:30:07 +02:00
6211ec5cb4 Added plugin to generate RSS feed at /feed.xml 2020-04-18 17:29:12 +02:00
a006517b8e Disable force pushing
We assume we have our builds setup right now.

[ci skip]
2020-04-18 17:28:38 +02:00
1c980536a2 Merge pull request 'Added Gitea logo to footer' (#18) from gitea-logo into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:27:52 +02:00
e0007eca54 Added gitea logo to the footer and added titles to all logos
The svg is a lil bit of a hack. The svg is the proper svg logo, edited
manually. The middle transparency is actually just the background of the
current footer.

THIS NEEDS TO BE CHANGED IF THE COLOUR SCHEME CHANGES
2020-04-18 17:26:47 +02:00
27c81db722 Exclude PRs once more
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:26:32 +02:00
e5faea080e Remove indentation and top-level this stanza
[ci skip]
2020-04-18 17:25:26 +02:00
8094625dbc Try include/exclude events
[ci skip]
2020-04-18 17:20:48 +02:00
8868ae08bf Try master / push combinator once again :sigh:
[ci skip]
2020-04-18 17:18:59 +02:00
7e854e1616 Try refs trigger
[ci skip]
2020-04-18 17:16:16 +02:00
99bf5a891f Match master with push for triggers
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 17:05:14 +02:00
7a5c2d613b Turn on force pushing
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 16:56:16 +02:00
3645e21236 Remove new line and run formatter
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-18 16:52:07 +02:00
6623973388 Added exclusion of pull requests to drone builds
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-18 15:37:16 +01:00
80af40e8ff Add a friendlier intro
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-14 15:20:31 +02:00
8ec940fac5 Move to clearer config
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 12:44:58 +02:00
789cc39c10 Inline this link
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 11:14:18 +02:00
2df37af10d Remove old format cruft
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-13 20:00:49 +02:00
6ebcab155e Move to v2 format
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-13 19:40:29 +02:00
9105acf97c Point to git.coop URL
[ci skip]
2020-04-09 08:36:21 +02:00
af8ca3ca38 Merge pull request 'text-tweaks' (#14) from text-tweaks into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:12:25 +02:00
49f3d4ed71 Merge pull request 'pgp-key-update' (#15) from pgp-key-update into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:11:56 +02:00
850da933e8 Merge pull request 'covid-blog-post' (#13) from covid-blog-post into master
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 19:08:59 +02:00
da3a3a989c Use triggers syntax
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 18:40:20 +02:00
dcb3ada610 Don't fuck with DNS for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-08 18:36:17 +02:00
489315eb60 Only build things on master 2020-04-08 18:36:07 +02:00
704a678de5 Added reference to infrastructure
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2020-04-08 17:28:33 +01:00
5a8abd8d2b Upgrade role requirements 2020-04-08 18:27:31 +02:00
9b906cff1a Re-enable DNS entry tasks 2020-04-08 18:27:24 +02:00
0afce645e0 Remove notification
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-08 18:18:12 +02:00
abe8840d2a Removed bold from coop name line.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-08 16:47:54 +01:00
1c1e51f5d6 Added bold emphasis. Reorganised PGP key section. 2020-04-08 16:44:57 +01:00
7bd00564f4 Added FCA coop details 2020-04-08 16:32:44 +01:00
39d17a1e0b Added email to services section 2020-04-08 15:14:03 +01:00
deeecb22b9 Tweaker footer 2020-04-08 15:13:44 +01:00
177cc16dde Removed CC logo and repeated title 2020-04-08 15:04:23 +01:00
4b31a9364d Fix site URL
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 16:41:20 +02:00
20c1d5bf0b Disable DNS tasks for now
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-06 16:38:56 +02:00
41 changed files with 592 additions and 325 deletions

View File

@ -1,37 +1,39 @@
---
kind: pipeline
name: default
name: deploy to swarm.autonomic.zone
steps:
- name: Build autonomic.zone docker image
image: docker:stable
volumes:
- name: docker_sock
path: /var/run/docker.sock
commands:
- docker build --no-cache -t autonomic/autonomic.zone:drone .
- name: Deploy Autonomic.zone with Dokku
image: appleboy/drone-git-push:0.2.0-linux-amd64
- name: bundle static
image: plugins/docker
settings:
remote: ssh://dokku@dokku.autonomic.zone:222/autonomic.zone
ssh_key:
from_secret: drone_deploy_key
when:
branch: master
username:
from_secret: docker_reg_username
password:
from_secret: docker_reg_passwd
repo: decentral1se/autonomic.zone
tags: latest
- name: Send notification to chat.internal.autonomic.zone
image: rmilewski/drone-rocket:latest
when:
status: [success, failure]
- name: deployment
image: decentral1se/stack-ssh-deploy:latest
settings:
stack: jekyll
compose: docker-compose.prod.yml
deploy_key:
from_secret: drone_ssh_swarm.autonomic.zone
- name: notify rocket chat
image: plugins/slack
settings:
webhook:
from_secret: rocket_chat_webhook
channel: drone-notify
username: drone-notifications-bot
message:
- value: "${DRONE_COMMIT_AUTHOR} deployed site.autonomic.zone (see [commit](${DRONE_COMMIT_LINK})) :partying_face:"
from_secret: rc_builds_url
username: comradebritney
channel: "internal.builds"
template: "{{repo.owner}}/{{repo.name}} build failed: {{build.link}}"
when:
DRONE_BUILD_STATUS: success
- value: "[commit](${DRONE_COMMIT_LINK}) failed to deploy site.autonomic.zone (see [logs](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone/${DRONE_BUILD_NUMBER})) :confounded:"
status:
- failure
trigger:
branch:
- main
event:
exclude:
- pull_request

5
CHECKS
View File

@ -1,5 +0,0 @@
WAIT=3
TIMEOUT=3
ATTEMPTS=3
/

View File

@ -4,31 +4,40 @@
For those unfamiliar with how Jekyll works, check out [jekyll.rb] for all the
details, or read up on the basics of [front matter], [writing posts] and
[creating pages].
[creating pages]. Alternatively, just dive in and start editing! After all, the
majority of this site is configuration is just flat text, so it's easy to work
with.
[jekyll.rb]: https://jekyllrb.com/
[front matter]: https://jekyllrb.com/docs/frontmatter/
[writing posts]: https://jekyllrb.com/docs/posts/
[creating pages]: https://jekyllrb.com/docs/pages/
## Deploy It
## Development
1. Push your changes to master and Dokku will try to automatically release
1. See the [Drone dashboard to see the build](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone/)
The prerequisites are [Docker](https://www.docker.com/) and [Docker-compose](https://docs.docker.com/compose/).
## Hack On It
If you're on Debian, installing is easy.
The only prerequisite is [Docker](https://www.docker.com/). If you're on Debian, installing is easy.
Install Docker.
```bash
$ curl -fsSL https://get.docker.com -o get-docker.sh # have a look if you want
$ sh get-docker.sh
$ CHANNEL=stable sh get-docker.sh
```
Fire up the container with the following.
Install Docker-compose.
```bash
$ make dockerserver
$ cd autonomic.zone
$ python3 -m venv .venv
$ pip3 install -r requirements.txt
```
Then fire up the container with the following.
```bash
$ docker-compose up
```
Then visit the locally running website.
@ -37,9 +46,8 @@ Then visit the locally running website.
Then you can edit the files as normal and reload the page.
## Notes
To stop the container when you're done, you can run:
1. For configuration, please note, we now use a `dev` environment config file:
`_config_dev.yml`. Hence if you edit one `_config*` file and you also want
that change to be reflected in the other environment ("dev", "prod") then
edit the other file as well!
```bash
$ docker-compose stop
```

View File

@ -1,15 +1,17 @@
FROM decentral1se/jekyll:4
FROM ruby:2.7.3-alpine
EXPOSE 4000
WORKDIR /usr/src/app
RUN apk --no-cache add \
bash \
curl \
g++ \
git \
make
RUN gem install bundler -v 2.1.4
RUN gem install jekyll -v 4.0.0
COPY . ${WORKDIR}
COPY sbin/* /sbin/
RUN bundle config --global frozen 1
RUN bundle install
ENTRYPOINT ["/sbin/entrypoint.sh"]

View File

@ -1,3 +1,7 @@
source "https://rubygems.org"
ruby '2.6.5'
ruby "2.7.3"
gemspec
gem "jekyll-feed"

View File

@ -34,11 +34,14 @@ GEM
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.1.0)
kramdown (2.2.1)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
@ -48,13 +51,14 @@ GEM
mercenary (0.3.6)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.3)
rb-fsevent (0.10.3)
public_suffix (4.0.4)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rouge (3.17.0)
rexml (3.2.3)
rouge (3.18.0)
safe_yaml (1.0.5)
sassc (2.2.1)
sassc (2.3.0)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
@ -67,9 +71,10 @@ DEPENDENCIES
autonomic!
bundler (>= 2.1.4)
jekyll (>= 4)
jekyll-feed
RUBY VERSION
ruby 2.6.5p114
ruby 2.7.3p183
BUNDLED WITH
2.1.4

View File

@ -1,21 +0,0 @@
DEV_DIST_DIR:=dist
devserver:
@echo "Serving development site from $(DEV_DIST_DIR)"
@jekyll serve --watch --incremental --destination $(DEV_DIST_DIR)
.PHONY: devserver
dockerbuild:
@docker build -t autonomic/autonomic.zone:testing .
.PHONY: dockerbuild
dockerserver: dockerbuild
@docker run \
-e JEKYLL_PORT=4000 \
-e JEKYLL_HOST=0.0.0.0 \
-e JEKYLL_CONFIG=_config_dev.yml \
-v $$(pwd):/usr/src/app \
-p 4000:4000 \
-d \
autonomic/autonomic.zone:testing
.PHONY: dockerserver

View File

@ -2,20 +2,13 @@
[![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/autonomic.zone/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone)
> https://site.autonomic.zone
> https://autonomic.zone
A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template.
[jekyll]: https://jekyllrb.com/
[spectral-jekyll-theme]: https://github.com/andrewbanchich/spectral-jekyll-theme
# Deploy
1. Push your changes to master and Dokku will try to automatically release
1. See the [Drone dashboard to see the build](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone/)
# Contribute
Please see [CONTRIBUTING.md] for the juicy details.
[contributing.md]: ./CONTRIBUTING.md
Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for the juicy details.

View File

@ -3,16 +3,16 @@ title: Autonomic Co-operative
email: helo@autonomic.zone
description: Sustainability, Transparency, Privacy
baseurl: ""
url: ""
url: "https://autonomic.zone"
source: src
destination: dist
sass:
sass_dir: ./assets/styles
featured-image-source:
500px_url:
github_url:
include: ["src/.well-known", "src/.nojekyll"]
mastodon_url: https://sunbeam.city/@autonomic
twitter_url: https://twitter.com/autonomiccoop
gitea_url: https://git.autonomic.zone/autonomic-cooperative/
markdown: kramdown
permalink: pretty
collections:
@ -25,3 +25,5 @@ exclude:
- vendor
- Gemfile
- Gemfile.lock
plugins:
- jekyll-feed

View File

@ -1,27 +0,0 @@
---
title: Autonomic Co-operative
email: helo@autonomic.zone
description: Sustainability, Transparency, Privacy
baseurl: ""
url: "https://site.autonomic.zone"
source: src
destination: dist
sass:
sass_dir: ./assets/styles
featured-image-source:
500px_url:
github_url:
mastodon_url: https://sunbeam.city/@autonomic
twitter_url: https://twitter.com/autonomiccoop
markdown: kramdown
permalink: pretty
collections:
posts:
output: true
permalink: /blog/:title/
clients:
output: false
exclude:
- vendor
- Gemfile
- Gemfile.lock

View File

@ -1,5 +0,0 @@
#!/bin/bash
set -eu -o pipefail
echo $(pass show hosts/autonomic-dokku/vault/password)

View File

@ -1,47 +0,0 @@
---
- hosts: all
gather_facts: false
tasks:
- name: Load variables
include_vars:
dir: "{{ dokku_lib_root }}/data/ansible/autonomic.zone/vars/"
extensions:
- yml
- name: Set HTTP 80 port proxy
dokku_ports:
app: autonomic.zone
mappings:
- "http:80:{{ http_port }}"
state: present
- name: Setup LE certificates
shell: dokku letsencrypt autonomic.zone
args:
creates: /home/dokku/autonomic.zone/letsencrypt/certs
- name: Setup LE certificates renew cron job
shell: dokku letsencrypt:cron-job --add
args:
creates: /home/dokku/autonomic.zone/letsencrypt/cron-job
- name: Specify docker volume mounts
dokku_storage:
app: autonomic.zone
mounts:
- /home/dokku/autonomic.zone/letsencrypt/certs/current/key.pem:/etc/x509/https/tls.key
- /home/dokku/autonomic.zone/letsencrypt/certs/current/cert.pem:/etc/x509/https/tls.crt
- name: Set HTTP 443 port
dokku_ports:
app: autonomic.zone
mappings:
- "https:443:{{ http_port }}"
state: present
- name: Remove automatically configured ports
dokku_ports:
app: autonomic.zone
mappings:
- "http:4000:4000"
state: absent

View File

@ -1,54 +0,0 @@
---
- hosts: all
gather_facts: false
tasks:
- name: Load variables
include_vars:
dir: "{{ dokku_lib_root }}/data/ansible/autonomic.zone/vars/"
extensions:
- yml
- name: Prepare Python system dependencies
become: true
apt:
name: python3-pip
state: present
- name: Install dns-lexicon system wide
become: true
pip:
name: ["cryptography==2.8", "dns-lexicon==3.3.19"]
executable: /usr/bin/pip3
state: present
- name: "Create {{ domain }} DNS entry"
gandi_dns:
gandi_rest_token: "{{ gandi_rest_token }}"
domain: "{{ domain }}"
ipv4: "{{ dokku_domain_ipv4 }}"
state: present
- name: "Configure the {{ domain }} domain"
dokku_domains:
app: autonomic.zone
domains:
- "{{ domain }}"
state: present
- name: Ensure default app configured domains go away
dokku_domains:
app: autonomic.zone
domains:
- autonomic.zone.dokku.autonomic.zone
state: absent
- name: Configure the dokku app environment
dokku_config:
app: autonomic.zone
restart: false
config:
DOKKU_LETSENCRYPT_EMAIL: "{{ autonomic_admin_mail }}"
JEKYLL_HOST: "0.0.0.0"
JEKYLL_PORT: "{{ http_port }}"
JEKYLL_CONFIG: "{{ jekyll_config }}"
JEKYLL_ENV: "{{ jekyll_env }}"

View File

@ -1,6 +0,0 @@
---
- src: dokku_bot.ansible_dokku
version: v2020.3.15
- src: https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/archive/0.0.5.tar.gz
name: autonomic.gandi

View File

@ -1,8 +0,0 @@
---
ansible_python_interpreter: "/usr/bin/python3"
autonomic_admin_mail: "helo@autonomic.zone"
dokku_domain_ipv4: "94.130.105.60"
domain: "autonomic.zone"
http_port: "4000"
jekyll_config: "_config_prod.yml"
jekyll_env: "production"

View File

@ -1,8 +0,0 @@
---
ansible_become_pass: !vault |
$ANSIBLE_VAULT;1.1;AES256
34396236353735666531323238656533643465303131663464613162396333313836363630666266
6539323631656635333864316166633064633366323936610a656137616334313534333635313232
35323561303763366563316631313638363333393763323935343563303963616334336639386462
3837383830616637360a373539613630356564363662393836366462666430353439353637303035
63396633303166343433313439303539313637306637663137313533316531616434

View File

@ -1,8 +0,0 @@
---
gandi_rest_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
65653461333739626564356366313338613561396163383161633561373736626138306633353261
3230376530616361343063346533633464643165643739310a303965353336353063353564643263
37396139643161346265616630633530353866356338386134383565363238393932666565663163
3831393731353735350a313235376463643439363833616263653637623363386532636132366662
65313835306637323066396232653166313262613333633061313266363338646334

View File

@ -1,5 +0,0 @@
{
"name": "autonomic.zone",
"description": "Autonomics website on the world wide web",
"repository": "https://git.autonomic.zone/autonomic-cooperative/autonomic.zone"
}

View File

@ -2,13 +2,13 @@
Gem::Specification.new do |spec|
spec.name = "autonomic"
spec.version = '0.0.0'
spec.date = '2017-09-24'
spec.version = "0.0.0"
spec.date = "2017-09-24"
spec.summary = ""
spec.description = ""
spec.authors = ['autonomic co-operative']
spec.email = 'autonomic.posteo.net'
spec.files = 'README.md'
spec.authors = ["autonomic co-operative"]
spec.email = "autonomic.posteo.net"
spec.files = "README.md"
spec.add_development_dependency "jekyll", ">= 4"
spec.add_development_dependency "bundler", ">= 2.1.4"

35
docker-compose.prod.yml Normal file
View File

@ -0,0 +1,35 @@
---
version: "3.8"
services:
jekyll:
image: decentral1se/autonomic.zone:latest
command: |
bundle exec
jekyll serve --host 0.0.0.0 --trace
environment:
JEKYLL_ENV: production
networks:
- proxy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4000"]
interval: 15s
timeout: 10s
retries: 10
start_period: 20s
deploy:
update_config:
failure_action: rollback
order: start-first
labels:
- "traefik.enable=true"
- "traefik.http.services.jekyll.loadbalancer.server.port=4000"
- "traefik.http.routers.jekyll.rule=Host(`autonomic.zone`)"
- "traefik.http.routers.jekyll.entrypoints=web-secure"
- "traefik.http.routers.jekyll.tls.certresolver=production"
- "traefik.http.routers.jekyll.tls.options=default@file"
- "traefik.http.routers.jekyll.middlewares=security@file"
networks:
proxy:
external: true

13
docker-compose.yml Normal file
View File

@ -0,0 +1,13 @@
---
version: "3.8"
services:
jekyll:
image: decentral1se/autonomic.zone:latest
command: |
bundle exec
jekyll serve --watch --host 0.0.0.0 --force_polling --trace
volumes:
- ".:/srv/jekyll"
ports:
- "4000:4000"

6
renovate.json Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
]
}

View File

@ -1 +1 @@
ansible==2.9.6
docker-compose==1.29.1

View File

@ -1,15 +0,0 @@
#!/bin/bash
set -eu -o pipefail
# Usage
# ./encrypt.sh mysecretname mysecretvalue
declare name="$1"
declare secret="$2"
ansible-vault \
encrypt_string \
--vault-password-file ansible/.vault.sh \
--name "$name" \
"$secret"

View File

@ -1,24 +0,0 @@
#!/bin/bash
set -eu -o pipefail
# Fire up Jekyll with the right configuration
run_jekyll() {
set -eu
bundle exec jekyll serve \
--config "$JEKYLL_CONFIG" \
--host "$JEKYLL_HOST" \
--port "$JEKYLL_PORT" \
--trace \
--verbose
}
# Main entrypoint
main() {
set -eu
run_jekyll
}
main

0
src/.nojekyll Normal file
View File

View File

@ -0,0 +1,3 @@
{
"m.server": "matrix.autonomic.zone:443"
}

View File

@ -4,36 +4,44 @@
<div class="column">
<a class="named-anchor" name="contact"></a>
<h3>Get in Touch</h3>
Contact us to discuss your project's needs and arrange a consultation:
<a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></br></br>
<a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">PGP key:</a>
<code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
Contact us to discuss your project's needs and arrange a consultation:</br>
<b><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></b></br></br>
<b><a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">Download PGP key</a></b></br>
<a href= "https://git.autonomic.zone/autonomic-cooperative/autonomic.zone/src/branch/main/src/assets/pgp"> Verify fingerprint:</a><code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code>
<ul class="icons" style="margin-bottom: 0; padding-top: 1em">
<li>
<a rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none">
<a title="RSS Feed" rel="me" href="{{ '/feed.xml' | absolute_url }}" style="border-bottom: none">
<!-- This SVG needs to be changed if you change the colour scheme as it is a massive hack. -->
<img alt="rss" style="height: 2rem;color: #fff" src="{{ '/assets/svg/rss-square-solid.svg' | absolute_url }}">
</a>
</li>
<li>
<a title="Twitter" rel="noopener" href="{{ site.twitter_url }}" style="border-bottom: none">
<img alt="twitter" style="height: 2rem;" src="{{ '/assets/svg/twitter-brands.svg' | absolute_url }}">
</a>
</li>
<li>
<a rel="me" href="{{ site.mastodon_url }}" style="border-bottom: none">
<a title="Mastodon" rel="me" href="{{ site.mastodon_url }}" style="border-bottom: none">
<img alt="mastodon" style="height: 2rem;" src="{{ '/assets/svg/mastodon-brands.svg' | absolute_url }}">
</a>
</li>
<li>
<a title="Gitea" rel="me" href="{{ site.gitea_url }}" style="border-bottom: none">
<!-- This SVG needs to be changed if you change the colour scheme as it is a massive hack. -->
<img alt="gitea" style="height: 2.3rem;" src="{{ '/assets/svg/Gitea_Logo.svg' | absolute_url }}">
</a>
</li>
</ul>
</div>
<div class="column">
<div class="copyright">
<object style="height: 1.2rem; vertical-align: text-bottom;" type="image/svg+xml" data="{{ '/assets/svg/creative-commons-brands.svg' | absolute_url }}">
Your browser does not support SVG
</object>&nbsp;
{{ site.title }}
</div>
<div class="cotech-box">
<a href="https://www.coops.tech/">
<img class="cotech-logo" src="{{ '/assets/images/CoTech-white-logo.png' | relative_url }}" alt="CoTech"/>
<span class="cotech-text">Member of the Cotech Network</span>
<b><span class="cotech-text">Member of the Cotech Network</span></b>
</a>
</div>
<div style="vertical-align: bottom;">
@ -43,7 +51,13 @@
Birmingham</br>
B30 2JH</br>
United Kingdom</br>
</address>
</address></br>
We are a Co-operative Society registered with the <a href="https://mutuals.fca.org.uk/Search/Society/30380">FCA</a>.
<b>Registration Number: 4597 </b>
</br></br>
</div>
<div style="vertical-align: bottom;">
<a href="{{ '/privacy' | relative_url }}">Privacy Policy</a> - <a href="{{ '/terms' | relative_url }}">Terms of Service</a> - <a href="{{ '/gdpr' | relative_url }}">GDPR</a>
</div>
</div>
</div>

View File

@ -2,10 +2,11 @@
<section id="three" class="wrapper style6 special">
<div class="inner">
<header class="major">
<h2>Cooperative Cloud: For Organisations</h2>
<h2>Cooperative Cloud Infrastructure</h2>
<p>
This isn't an exhaustive list - if you don't see what you need, please contact us anyway.
This isn't an exhaustive list. If you don't see what you need, please contact us anyway for a consultation:
</p>
<h3><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></h3>
</header>
<ul class="features">
<li class="features-item">
@ -13,7 +14,7 @@
<div>
<h3>Websites</h3>
<p>
We offer <a href="https://wordpress.com/">Wordpress</a> and static sites. Either managed or unmanaged with frictionless tools for editing and publishing that empower users. <a href="https://matomo.org/">Matamo</a> provides ethical analytics to measure impact.
We offer <a href="https://wordpress.com/">Wordpress</a> and static sites. Either managed or unmanaged with frictionless tools for editing and publishing that empower users. <a href="https://matomo.org/">Matomo</a> provides ethical analytics to measure impact.
</p>
</div>
</li>

View File

@ -0,0 +1,52 @@
---
layout: post
title: Hyperpy, the punk-to-punk protocol in Python
description: A new Python implementation of the Hypercore protocol is cooking at Autonomic
image: 2020-04-23-dat-protocol.png
category: technology, peer-to-peer, hypercore-protocol
date: 2020-04-23
---
# Hyperpy, the punk-to-punk protocol in Python
We're quite excited by the new wave of community-developed peer-to-peer
technology. [Scuttlebutt], [Cabal], [Mapeo] and [Beaker browser] are inspiring
examples of software which show that technology can be built to operate without
running on centralised commercially-owned infrastructure (e.g. WhatsApp).
One of the underlying innovations for these technologies is the [Hypercore
protocol], which is a way of describing how two computers can send information
to each other directly.
Today, the reference implementation of the Hypercore protocol is written in
Javascript. The Javascript ecosystem has proved to be remarkably flexible for
advancing this next generation of tools. Simple methods of publishing (npm
publish), well-established distribution channels (the browser) and a
[philosophy of modularity] have enabled so many to get started with building
peer-to-peer technology.
However, there is a great need for other languages and ecosystems to benefit
from the tools and concepts that are being developed based on the reference
implementation. People from all walks of life need a working implementation in
their preferred language of choice. In response to this, we are seeing projects
like [Datrs] and [Datcxx] emerge (please note, the Hypercore protocol was once
called the Dat protocol, see [this blog post] for more information).
Alongside these efforts, a member of Autonomic has begun to work on Hyperpy, a
Python-based implementation of the Hypercore protocol. The project proposes a
roadmap but offers no deadlines and receives no funding at current status.
However slowly, things are moving along. Further progress updates will be
posted on this blog as they come in. All development is taking place on
[git.autonomic.zone/hyperpy].
[scuttlebutt]: https://scuttlebutt.nz/
[cabal]: https://cabal.chat/
[mapeo]: https://www.digital-democracy.org/mapeo/
[beaker browser]: https://beakerbrowser.com/
[hypercore protocol]: https://hypercore-protocol.org/
[philosophy of modularity]: https://mafinto.sh/blog/pragmatic-modularity.html
[datrs]: https://github.com/datrs/
[datcxx]: https://datcxx.github.io/
[git.autonomic.zone/hyperpy]: https://git.autonomic.zone/hyperpy/
[this blog post]: https://blog.datproject.org/2020/05/15/dat-protocol-renamed-hypercore-protocol/

View File

@ -0,0 +1,72 @@
---
layout: post
title: How we make decisions
description: Our collective's horizontal decision making process
image: trees.jpg
category: decision making, democracy
date: 2021-01-21
---
# How we make decisions
In Autonomic, we make decisions collectively, while also attempting to empower autonomous action by individual workers.
We designed our decision making process using decision making tools we had experienced through participation in various horizontal organisations. We hope this tool is useful to others in the struggle for a better world.
Our decisions can be split intro three categories: **Small, Medium and Large**.
## 1) Small - Get on and do the thing
- No one cares.
- Made by an individual within the co-op.
- Could be in any area.
- Up to individual co-op members to decide if they should just make the decision, or share it with the rest of the co-op to seek consensus.
## 2) Medium - Consensus pending objections
- About admin and infrastructure.
- Doesn't have an effect on the direction or operation of the co-op.
- Give a deadline: unless anyone objects or asks for more time by then, it goes ahead.
- The deadline must reasonable (a week by default).
- If any member of the co-op thinks it's a Large decision, achieve Maximum Consensus™ (see below).
## 3) Large - Maximum Consensus™
- Important decisions affecting the operation, direction, working conditions and finances of the co-op.
- Consensus voting: addressing any concerns.
- Can be requested by any member of the co-op for any decision.
- Input from every co-op member.
- Whoever proposes Large decisions is responsible for chasing up members for votes.
- Votes can be in favour, against, abstain (stand aside) or block.
- One member, one vote.
## Process
For Medium and Large decisions:
1. Write up a proposal in a [HedgeDoc pad](https://hedgedoc.org/).
2. Link to the proposal on the proposals page on our wiki.
3. Announce the decision in the #announcements channel of our internal chat.
4. List the decision on the Decisions page on our wiki.
4. Announce the result in #announcements and record it on the Decisions
page of our wiki.
## Proposal format
(For Medium and Large decisions).
- What you want to change.
- Who it affects.
- Size (Medium / Large).
- Deadline.
- What chat channel you want discussion to happen in.
## Example proposal
> @all I'd like to propose (Medium|Large) decision XXX, to write our name as
"aUtOnOmIc cöööpERATIVE" in all our public communications.
>
> Deadline for votes is DEADLINE let me know if you need more time to vote than that.
>
> Please send absolutely any and all replies in #CHANNEL, not here 🙏
>
> 👍 this message for "enthusiastic consent", 🤷 for "stand aside" or 👎 if you need to indicate your extreme disagreement with this idea.
>
> 👇 VOTES HERE
## Further resources
Extra information about decision making processes in co-operatives can be found on the [Seeds for Change website](https://seedsforchange.org.uk/resources).

View File

@ -0,0 +1,25 @@
---
layout: post
title: Escaping the Google silo
description: Opening up your Google Drive and Docs files using open source software
image:
category: technology
date: 2021-02-11
---
At Autonomic we always promote using [libre software](https://en.wikipedia.org/wiki/Free_software) whereever possible but we understand that many clients have committed to using [propietary software](https://en.wikipedia.org/wiki/Proprietary_software) either due to legacy decision or because the non-libre solutions are simply more effective and mature.
The Google Workspace set of tools including Google Drive and Google Docs is one such solution. Once your organisation has deployed and is using these Google services, it's extremly difficult to migrate away. Google Docs files are not easy to extract from their propietary format and users are strongly encouragaged to only interact with the documents via the Google Workspace web apps.
This is problematic for organisations that want to approach their data storage with a stratergy that suits them, rather than the Google™ mandated workflow.
There are also [so many criticims](https://en.wikipedia.org/wiki/Criticism_of_Google) that could be made of Google in so many areas (as a [worker's co-operative of privacy advocates](/our-founding-principles), we're of course very biased).
There is also the question of [Google outages](https://en.wikipedia.org/wiki/2020_Google_services_outages) which happened multiple times in 2020. Of course, service outages can and do happen at any scale but it is interesting to note that they are even fairly regular occurance at many of the largest technology companies. When it comes to critical services, offering reduncancy and decentralisation is very difficult to do at the monolithic scale of the tech ginats.
We have been working on a solution for a client to try and make it easier for organisatons to in the short term keep non-Google hosted copies of their data and in the long term, be in a better position to migrate away from Google Workspace all together. Luckily, there is an extensive [Drive](https://developers.google.com/drive/) and [Docs API](https://developers.google.com/docs/api/) which is well documentated and relativley stable.
Our system is designed to pull all of your data out of the Google [walled garden](https://en.wikipedia.org/wiki/Closed_platform) and directly into your control. We host a server for you which runs our code to extract all of your files from Google Drive and covert all of your Google Docs into open document formats (.odt .docx etc.). The files are then made available to your organisation as standard filesystem on your own [Nextcloud](https://nextcloud.com/) instance and then you can do what you want with them. You'll also be able to draw up a support contract with us that suits your needs for both maintaining the server and supporting your users.
We intend to release the source code for our system under a libre license as soon whens we feel it's ready but it still needs some cleaning up and documentation which takes time. When it's released, you'll be able to find on our [Gitea instance](https://git.autonomic.zone/autonomic-cooperative).
If you're interested in hosting this solution for your organsation, feel free to [get in touch](mailto:helo@autonomic.zone).

View File

@ -0,0 +1,99 @@
---
layout: post
title: The Co-operative Cloud
description: Libre software infrastructure without re-inventing the wheel
image: coop-cloud.png
category: coop, co-op, cloud, docker, swarm, libre-software, hosting,
date: 2021-03-01
---
Running [libre software] apps and infrastructure for ourselves and our clients is central to what we do at Autonomic. Now, after a year of work, we're stoked to share our "Co-op Cloud" project with the world. We want to make it easier for others to join the party, ditch corporate spyware, and make their tools [sustainable, transparent and private].
## Why a new tool?
We started out using [Cloudron], which provides a very simple-to-use web interface for deploying libre software apps like Nextcloud, Mediawiki, and Rocket.chat with only a few clicks.
Cloudron allowed us to radically reduce our initial and ongoing server costs. We didn't need to maintain a separate server for each service and clients apps could share computing resources whilst containerisation was still allowing us meeting their data privacy needs. Consequently, we've been able to take on many more "solidarity clients", people doing important work, but on a shoestring budget.
As time has gone on, though, we've had a few moments when we questioned our reliance on Cloudron, and whether it was a sustainable choice for us and for our clients. We came to realise:
- Core parts of the system officially [became proprietary] software. This rang alarm bells for us about its long-term future.
- The work to package the available apps is done [entirely by the Cloudron team itself] and doesn't re-use the existing rich ecosystem of libre software packaging work that's already being done. This seems like a big risk. If Cloudron UG, the company behind Cloudron, goes under, someone or some entity would need to take on that laborious, technically specific and non-transferable packaging work or we'd quickly be leaving ourselves and our clients running outdated and unmaintained software.
- Some aspects of Cloudron's architecture were causing problems. Requiring each app to be a single Docker image makes common application deployment configurations impossible (as far as we know, nobody has yet managed to get Mediawiki's visual editor working in Cloudron, for example).
- Not being able to delegate user management to specific groups has made it hard for us to use Cloudron's Single Sign On system with groups who manage their own users.
- Cloudron's central paradigm is focussed on "non-technical" users with the nice web front end for managing apps. However, we found our clients don't actually need to know what "domain name" or "storage volumes" are. That's why they pay us for support. They want it to "just work". Using an interface designed for non-technical users is not suitable for technical users and adds a lot of bloat.
- Cloudron is a bit of a [black box](https://en.wikipedia.org/wiki/Black_box). When something breaks, it breaks hard and requires technical users to respond and investigate and then fix the issues.
- Cloudron doesn't encourage collective and public collaboration on configuration files.
- We have a general fear of centralising so much of our core business on a commercial entity, which could change its prices at any time and have a massive effect on our ability to operate.
## A New Hope
So, around the end of 2019, we tried to map out a few core principles of a system which might work a lot like Cloudron, but give us more guarantees that we can depend on. We started calling the new project Co-op Cloud. Here are some of the principles we identified:
- Always be available under [copyleft licenses] to retain the shared work as part of the [commons](https://en.wikipedia.org/wiki/Commons). We shouldn't rely on creating [artificial scarcity](https://en.wikipedia.org/wiki/Artificial_scarcity) as a business model.
- Work with existing libre software communities who are already packaging and publishing their software (Nextcloud, Gitea, Mediawiki, Rocket.chat, the list goes on and on...). We want to be involved in their community spaces and build bridges between infrastructure, software development and end-users.
- Based on standardised technologies. Any new tools we write should only add a thin layer of usability on top of existing solutions.
- Place democratic governance at the core of the project. We want to collaborate as much as possible with other co-operatives to build up effective decision-making structures so we can all rely on this project far into the future.
- Focus on meeting the needs of small hosting providers with technical workers in order to provide a solid service for their clients.
- Encourage the creation of a configuration commons. Innovations based on Co-op Cloud can easily be shared and worked on collectively.
In our spare time (partly funded by income from working for our wonderful clients 😀) we've been putting the pieces together; and after a year of work (including two "back to the drawing board" moments), we're ready to launch an [alpha version](https://en.wikipedia.org/wiki/Software_release_life_cycle) of Co-op Cloud to the public.
## Co-op Cloud public alpha
Co-op Cloud is a simple packaging format using existing [open standards] to build a catalogue of apps, and a command-line client to read the catalogue and deploy those apps.
If you'd like to learn more about Co-op Cloud, please read [our documentation], where we explain the decisions we've made so far in more depth. What technologies we're using, how we fit into the existing ecosystem, ways to contribute, what apps are available and so on.
We've already been deploying Co-op Cloud as part of "dual power" strategy. We use Co-op Cloud to run some of our own and our clients' infrastructure while continuing with Cloudron and other strategies for the time being. We're seeing promising stability and it's been a joy to work with.
## Enter the configuration commons
You can also dive straight in by installing [`abra`, Co-op Cloud's command-line tool].
You can use Co-op Cloud right now to deploy any of our [30+ apps] to your own physical server or virtual server. These include [Nextcloud](https://nextcloud.com/) (for file, calendar, contacts etc) [Rocket.chat](https://rocket.chat/) for instant messaging, [Keycloak](https://www.keycloak.org/) for Single Sign-On, [Statping](https://statping.com/) for service monitoring, and websites using [Wordpress](https://wordpress.org/), [Pelican](https://blog.getpelican.com/), [Jekyll](https://jekyllrb.com/), or static HTML. See the [app catalogue](https://docs.cloud.autonomic.zone/apps/) for more.
Apps deployed via Co-op Cloud have automatic SSL certificates, and many come with pre-configured e-mail, backups, or Single Sign-On options.
See the [getting started guide](https://docs.cloud.autonomic.zone/overview/) to get moving fast.
## Packaging for Co-op Cloud
Packaging new apps for Co-op Cloud is straightforward in most cases: you can re-use an application's own Docker image (or even `docker-compose.yml` file) with minimal changes. We managed to [make a Co-op Cloud version of the Matomo web analytics platform in about 20 minutes]. This standardised architecture also means that nobody using Co-op Cloud is dependent on Autonomic for updates. When a new Wordpress update comes out, you can easily install it yourself or automatically without waiting for us to update some arcane custom Docker image.
## Next steps
At this point, we'd like to invite other worker co-operatives or democratic collectives to take a look at what we're working on and have a chat with us. We have a public matrix room at `#coopcloud:autonomic.zone`. We think a common platform for hosting libre software infrastructure could make a big difference in terms of what we're able to offer as a movement.
If you're interested in getting involved with Co-op Cloud development, or if you'd like help trying out Co-op Cloud hosted services for yourself or your organisation, please [get in touch].
## Links
- [Documentation](https://cloud.autonomic.zone/)
- [Source code](https://git.autonomic.zone/coop-cloud)
- [Public Matrix chat](https://matrix.to/#/#coopcloud:autonomic.zone?via=autonomic.zone)
[libre software]: http://wikieducator.org/Libre
[sustainable, transparent and private]: /#core-values
[cloudron]: https://cloudron.io/
[became proprietary]: https://forum.cloudron.io/topic/2862/why-not-make-cloudron-fully-open-source-again
[entirely by the cloudron team itself]: https://git.cloudron.io/cloudron
[our documentation]: https://docs.cloud.autonomic.zone
[`abra`, co-op cloud's command-line tool]: https://git.autonomic.zone/coop-cloud/abra/
[30+ apps]: https://git.autonomic.zone/coop-cloud/
[get in touch]: mailto:helo@autonomic.zone
[copyleft licenses]: https://www.gnu.org/licenses/copyleft.en.html
[open standards]: https://compose-spec.io/
[make a co-op cloud version of the matomo web analytics platform in about 20 minutes]: https://docs.cloud.autonomic.zone/package/

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
src/assets/images/trees.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="512" height="512" viewBox="0 0 135.46667 135.46667" version="1.1" id="svg8" sodipodi:docname="logo.svg" inkscape:version="0.92.1 r15371" inkscape:export-filename="" inkscape:export-xdpi="48.000004" inkscape:export-ydpi="48.000004">
<defs id="defs2"/>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="0.70710678" inkscape:cx="418.13805" inkscape:cy="177.57445" inkscape:document-units="mm" inkscape:current-layer="layer2" showgrid="false" units="px" width="256px" showguides="false" inkscape:window-width="1920" inkscape:window-height="1137" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:pagecheckerboard="false" inkscape:measure-start="283.373,243.952" inkscape:measure-end="290.267,236.527">
<sodipodi:guide position="0,0" orientation="0,512" id="guide3699" inkscape:locked="false"/>
<sodipodi:guide position="135.46667,0" orientation="-512,0" id="guide3701" inkscape:locked="false"/>
<sodipodi:guide position="135.46667,135.46667" orientation="0,-512" id="guide3703" inkscape:locked="false"/>
<sodipodi:guide position="0,135.46667" orientation="512,0" id="guide3705" inkscape:locked="false"/>
</sodipodi:namedview>
<metadata id="metadata5">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-161.53334)" style="display:inline">
<path style="fill:#ffffff;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z" id="path3722" inkscape:connector-curvature="0" sodipodi:nodetypes="sscccccsccsc"/>
</g>
<g inkscape:groupmode="layer" id="layer2" inkscape:label="Layer 2" style="display:inline">
<rect style="display:inline;fill:#1d2442;fill-opacity:1;stroke:none;stroke-width:0.24757317;stroke-opacity:1" id="rect4599" width="34.762054" height="34.762054" x="87.508659" y="18.291576" transform="rotate(25.914715)" ry="5.4825778"/>
<path style="display:inline;fill:#1d2442;fill-opacity:1;stroke:none;stroke-width:0.26644793px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z" id="path4525" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
</g>
<g inkscape:groupmode="layer" id="layer3" inkscape:label="Layer 3" style="display:inline">
<g style="display:inline" id="g4539">
<circle transform="rotate(-19.796137)" r="3.4745038" cy="90.077766" cx="49.064713" id="path4606" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<circle transform="rotate(-19.796137)" r="3.4745038" cy="102.1049" cx="36.810425" id="path4606-3" style="fill:#ffffff6;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<circle transform="rotate(-19.796137)" r="3.4745038" cy="111.43928" cx="46.484283" id="path4606-1" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"/>
<rect transform="rotate(26.024158)" y="18.061695" x="97.333458" height="27.261492" width="2.6726954" id="rect4629-8" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.27444693;stroke-opacity:1"/>
<path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4514" d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244" style="fill:none;stroke:#ffffff;stroke-width:2.68000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="rss-square" class="svg-inline--fa fa-rss-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="#ffffff" d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"></path></svg>

After

Width:  |  Height:  |  Size: 943 B

47
src/gdpr.md Normal file
View File

@ -0,0 +1,47 @@
---
layout: page
title: Privacy Policy
description: Privacy policy for Autonomic Co-operative Limited
meta_description: This is the privacy policy for Autonomic Co-operative Limited.
---
# Autonomic Cooperative Limited Data Protection Act 2018 (GDPR) privacy Notice.
> [The Data Protection Act 2018](https://www.gov.uk/data-protection) is the UKs implementation of the General Data Protection Regulation (GDPR).
## Summary
Our purpose is to provide secure services for socially responsible and progressive groups and individuals. We seek to minimise data collection where possible and follow best security practices.
To get in touch with Autonomic Cooperative Limited about any GPDR related issues please email [helo@autonomic.zone](helo@autonomic.zone). Our Secretary will act as contact for these matters.
## Data Protection Officer
We do not have or believe we require a Data Protection Officer, as we do not process sensitive data, nor do our core activities require large scale systemic tracking of individuals. See the [Information Commissioners Office (ICO) guidance](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/accountability-and-governance/data-protection-officers/) on this.
## Data Collection
If you use our services, we may act as data processor for you. We provide information about how our systems and procedures allow you to use our service securely in our information security policy.
We process data to provide Internet services. We collect names, addresses, email addresses, phone numbers of our customers so we can charge them for services and communicate with them information regarding the availability and status of their services. This processing is necessary for the performance of our contracts with them.
## Logging and tracking
Our services are configured to collect statistics including IP addresses via web server log files as is standard practice. The log files are kept for 28 days or less and are then deleted. We recommend you use [Tor Browser](https://www.torproject.org/) if you require greater anonymity.
Our servers may collect web usage statistics via our private [Matamo](https://matomo.org/) analytics servers. You may opt out of Matamo tracking, the best way to do this is to set the [Do Not Track header](https://en.wikipedia.org/wiki/Do_Not_Track) in your browser or use the browser extensions [ublock origin](https://github.com/gorhill/uBlock/) and/or [Privacy Badger](https://privacybadger.org/).
Occasionally our users may run alternative analytics software. This is outside of our control.
## Data Storage
This data is processed by our staff and only stored in the EU. We do not share data with 3rd parties unless this is required for the implementation of a specific service. For example, to a Domain Name Registrar to complete the whois information for a domain name. The requirement to share with 3rd parties will be clearly communicated to you, and only done with explicit consent.
We are required under UK tax law to keep your basic personal data (name, address, contact details) for a minimum of 6 years after which time it will be destroyed.
## Incorrect Information
If at any point you believe the information we process on you is incorrect you request to see this information and even have it corrected or deleted. If you wish to raise a complaint on how we have handled your personal data, you can contact our Secretary via email on [helo@autonomic.zone](mailto:helo@autonomic.zone) who will then investigate the matter.
See also our [Website Privacy Policy](/privacy) and [Terms of Service](/terms).
## Third Party Services
We use servers hosted by [Webarchitects](https://www.webarch.net/privacy-notice), [Hetzner](https://www.hetzner.com/rechtliches/datenschutz) and [Digital Ocean](https://www.digitalocean.com/legal/gdpr/) and [Gandi](https://contract.gandi.net/v5/contracts/36637/Privacy_Policy_SAS_1.1_en.pdf) for Domain names, DNS and Email, so their Data Processing Agreements may also apply.
## Contact us
If you are not satisfied with our response or believe we are processing your personal data in a way that is not in accordance with the law you can complain to the [Information Commissioners Office (ICO)](https://ico.org.uk/).

18
src/privacy.md Normal file
View File

@ -0,0 +1,18 @@
---
layout: page
title: Website Privacy Policy
description: Privacy policy for autonomic.zone
meta_description: This is the privacy policy for the website of Autonomic co-operative.
---
# Website Privacy Policy
## The Autonomic Co-operative Limited website privacy policy
Our Privacy Notice contains information regarding our [Data Protection Act 2018 (GDPR)](https://www.gov.uk/data-protection) compliance.
This site does not set cookies.
This site is configured to collect statistics including IP addresses via web server log files as is standard practice. The log files are kept for 28 days or less and are then deleted. We recommend you use [Tor Browser](https://www.torproject.org/) if you require greater anonymity. This site remains functional without [Javascript](https://en.wikipedia.org/wiki/JavaScript) enabled.
The source code for this website can be found [here](https://git.autonomic.zone/autonomic-cooperative/autonomic.zone).

62
src/terms.md Normal file
View File

@ -0,0 +1,62 @@
---
layout: page
title: Terms of Service
description: Terms of Service for autonomic.zone
meta_description: This is the Terms of Service for Autonomic Co-operative Limited.
---
# Terms of service
This document describes what activities are allowed, under what conditions we may terminate your account, and asserts our limited liability. It applies to all interactions with Autonomic Cooperative Limited. Your use of Autonomic Cooperative Limited's services constitutes your agreement to these Terms of Service.
## Summary
If you do anything truly evil, we will terminate your account. We are not liable for any damages related to the use of these services. You agree to hold patience in your heart for the hard work we do.
## Privacy policies
We ask that you review our [Privacy Policy](/gdpr), so that you are aware of how we collect and use your information.
## Ownership of and responsibility for content
All Content, whether publicly posted or privately transmitted, is the sole responsibility of the person who originated such Content. We may not monitor or control the Content posted via the Services and we cannot take responsibility for such Content.
Any use or reliance on any Content or materials posted via the Services or obtained by you through the Services is at your own risk. You are responsible for your use of the Services, for any Content you provide, and for any consequences thereof.
### Refraining from certain activities
You may not engage in the following activities through the services provided by Autonomic Cooperative Limited:
- Harassing or abusing others by engaging in threats, stalking or sending spam. This includes usernames, aliases or using any of our resources for this purpose.
- Misuse of services by distributing viruses or malware, engaging in a denial of service attack, or attempting to gain unauthorised access to any computer system, including this one.
- Contributing to the abuse of others by distributing material where the production process created violence or sexual assault against persons.
## Account Termination
Autonomic Cooperative Limited may terminate your service at any time for any reason.
## Limitation on Liability
You agree that Autonomic Cooperative Limited is not liable to you or to any other party for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data, or other intangible losses, regardless of whether we were advised of the possibility of such damage.
In the case that applicable law may not allow the limitation or exclusion of liability or incidental or consequential damages, the above limitation or exclusion may not apply to you, although our liability will be limited to the fullest extent permitted by applicable law.
### Choice of Forum and Law
You agree that these Terms of Service and your use of Autonomic Cooperative Limited is governed by the law of United Kingdom.
### Policy regarding copyright infringement - DMCA
Autonomic Cooperative Limited complies with the Digital Millennium Copyright Acts notice and take-down procedures. DMCA complaints should be addressed to:
```
Autonomic Cooperative Limited
1539 Pershore Road
Birmingham
B30 2JH
United Kingdom
```
Or via email: [helo@autonomic.zone](mailto:helo@autonomic.zone)
Please note that it is Autonomic Cooperative Limiteds policy to take reasonable steps, within our power, to terminate the accounts of users who are repeat infringers in appropriate circumstances.
### No Warranty
You understand and agree that Autonomic Cooperative Limited provides online services “as is” and without any warranty, express, implied, or statutory.
We specifically disclaim any implied warranties of title, merchant-ability, fitness for a particularly purpose and non-infringement. We make no warranty as to the reliability, accessibility, or quality of our services. You agree that the use of our services is at your sole and exclusive risk.
### Changes to this policy
We reserve the right to change this policy. If we make major changes, we will notify our users in a clear and prominent manner.