Compare commits

..

222 Commits

Author SHA1 Message Date
85d7f33831 Add www domain to traefik router 2022-06-14 10:48:38 -07:00
3660b76db9 fix wording
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-03 12:51:44 +02:00
475790f399 use unicode emoji instead of shortcode
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-03 10:36:07 +02:00
537ad52a33 new image
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-03 10:12:54 +02:00
4f07299e5c drop that back to unfuck the build
All checks were successful
continuous-integration/drone/push Build is passing
2022-06-03 09:49:41 +02:00
445cd7bcca first cut of the post
Some checks failed
continuous-integration/drone/push Build is failing
2022-06-03 09:23:34 +02:00
a26132b1f5 Update dependency ruby to v2.7.6
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
2022-04-19 07:00:36 +00:00
e03735dec3 another image
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-14 18:33:35 +02:00
ccb41ee618 remove broken emoji & be less bombastic 2022-04-14 18:32:45 +02:00
d144af2c35 link again
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-14 18:30:29 +02:00
4830f4446c add missing image
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-14 18:27:58 +02:00
d8cbaf464a fedi proposal post
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-14 18:26:29 +02:00
3wc
6a8dcbbaad Fix email address in job post
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-26 11:31:24 +02:00
fc4a221d9d cleaned up the blog post
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-25 10:08:06 -05:00
e19c065ba7 made co-op cloud a link on blog post
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-25 08:49:45 -05:00
7e17aa9850 robert mccall image 2021-11-25 08:46:42 -05:00
58f91fd36f recruitment post
All checks were successful
continuous-integration/drone/push Build is passing
2021-11-25 08:42:09 -05:00
3wc
e42749b6ab Update for Ruby 2.7.4
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-24 01:34:43 +02:00
04c1f4abc6 Merge branch 'main' of ssh://git.autonomic.zone:2222/autonomic-cooperative/autonomic.zone
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing
2021-07-18 07:11:12 +05:00
293176f6c2 update coop cloud blog post image 2021-07-18 07:11:00 +05:00
6d3a7aa06f update coop cloud blog post image 2021-07-18 07:10:29 +05:00
01c7f37f42 Update ruby Docker tag to v2.7.4
Some checks failed
continuous-integration/drone/push Build is failing
2021-07-08 07:00:29 +00:00
08da075460 Use new image
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-07 12:57:13 +02:00
7e99afee31 Merge pull request 'New Co-op Cloud pointer post' (#72) from new-coop-cloud-blog into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #72
2021-07-07 12:38:31 +02:00
fd5648f26e Merge branch 'main' into new-coop-cloud-blog 2021-07-07 12:38:25 +02:00
77e40903ed Add small CC blog post 2021-07-07 12:36:44 +02:00
d9c8878f24 update coop cloud blog post image
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-07 04:10:53 +05:00
24f24a3972 add white bg to coop cloud blog post img
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-06 16:52:19 +05:00
a77f397978 Merge pull request 'Update dependency docker-compose to v1.29.2 (main)' (#68) from renovate/main-docker-compose-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #68
2021-05-11 09:18:34 +02:00
ca00e889de Update dependency docker-compose to v1.29.2
Some checks failed
renovate/artifacts Artifact file update failure
2021-05-11 07:00:30 +00: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
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
49 changed files with 690 additions and 325 deletions

View File

@ -1,37 +1,39 @@
--- ---
kind: pipeline kind: pipeline
name: deploy to swarm.autonomic.zone
name: default
steps: steps:
- name: Build autonomic.zone docker image - name: bundle static
image: docker:stable image: plugins/docker
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
settings: settings:
remote: ssh://dokku@dokku.autonomic.zone:222/autonomic.zone username:
ssh_key: from_secret: docker_reg_username
from_secret: drone_deploy_key password:
when: from_secret: docker_reg_passwd
branch: master repo: decentral1se/autonomic.zone
tags: latest
- name: Send notification to chat.internal.autonomic.zone - name: deployment
image: rmilewski/drone-rocket:latest image: decentral1se/stack-ssh-deploy:latest
when: settings:
status: [success, failure] stack: jekyll
compose: docker-compose.prod.yml
deploy_key:
from_secret: drone_ssh_swarm.autonomic.zone
- name: notify rocket chat
image: plugins/slack
settings: settings:
webhook: webhook:
from_secret: rocket_chat_webhook from_secret: rc_builds_url
channel: drone-notify username: comradebritney
username: drone-notifications-bot channel: "internal.builds"
message: template: "{{repo.owner}}/{{repo.name}} build failed: {{build.link}}"
- value: "${DRONE_COMMIT_AUTHOR} deployed site.autonomic.zone (see [commit](${DRONE_COMMIT_LINK})) :partying_face:" when:
when: status:
DRONE_BUILD_STATUS: success - failure
- 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:" 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 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 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/ [jekyll.rb]: https://jekyllrb.com/
[front matter]: https://jekyllrb.com/docs/frontmatter/ [front matter]: https://jekyllrb.com/docs/frontmatter/
[writing posts]: https://jekyllrb.com/docs/posts/ [writing posts]: https://jekyllrb.com/docs/posts/
[creating pages]: https://jekyllrb.com/docs/pages/ [creating pages]: https://jekyllrb.com/docs/pages/
## Deploy It ## Development
1. Push your changes to master and Dokku will try to automatically release The prerequisites are [Docker](https://www.docker.com/) and [Docker-compose](https://docs.docker.com/compose/).
1. See the [Drone dashboard to see the build](https://drone.autonomic.zone/autonomic-cooperative/autonomic.zone/)
## 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 ```bash
$ curl -fsSL https://get.docker.com -o get-docker.sh # have a look if you want $ 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 ```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. 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. 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: ```bash
`_config_dev.yml`. Hence if you edit one `_config*` file and you also want $ docker-compose stop
that change to be reflected in the other environment ("dev", "prod") then ```
edit the other file as well!

View File

@ -1,15 +1,17 @@
FROM decentral1se/jekyll:4 FROM ruby:2.7.4-alpine3.12
EXPOSE 4000 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 . ${WORKDIR}
COPY sbin/* /sbin/
RUN bundle config --global frozen 1
RUN bundle install RUN bundle install
ENTRYPOINT ["/sbin/entrypoint.sh"]

View File

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

View File

@ -34,11 +34,14 @@ GEM
rouge (~> 3.0) rouge (~> 3.0)
safe_yaml (~> 1.0) safe_yaml (~> 1.0)
terminal-table (~> 1.8) terminal-table (~> 1.8)
jekyll-feed (0.13.0)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.1.0) jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0) sassc (> 2.0.1, < 3.0)
jekyll-watch (2.2.1) jekyll-watch (2.2.1)
listen (~> 3.0) listen (~> 3.0)
kramdown (2.1.0) kramdown (2.2.1)
rexml
kramdown-parser-gfm (1.1.0) kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0) kramdown (~> 2.0)
liquid (4.0.3) liquid (4.0.3)
@ -48,13 +51,14 @@ GEM
mercenary (0.3.6) mercenary (0.3.6)
pathutil (0.16.2) pathutil (0.16.2)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (4.0.3) public_suffix (4.0.4)
rb-fsevent (0.10.3) rb-fsevent (0.10.4)
rb-inotify (0.10.1) rb-inotify (0.10.1)
ffi (~> 1.0) ffi (~> 1.0)
rouge (3.17.0) rexml (3.2.3)
rouge (3.18.0)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sassc (2.2.1) sassc (2.3.0)
ffi (~> 1.9) ffi (~> 1.9)
terminal-table (1.8.0) terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1) unicode-display_width (~> 1.1, >= 1.1.1)
@ -67,9 +71,10 @@ DEPENDENCIES
autonomic! autonomic!
bundler (>= 2.1.4) bundler (>= 2.1.4)
jekyll (>= 4) jekyll (>= 4)
jekyll-feed
RUBY VERSION RUBY VERSION
ruby 2.6.5p114 ruby 2.7.3p183
BUNDLED WITH BUNDLED WITH
2.1.4 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) [![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. A [Jekyll] based site for the Autonomic Cooperative. The site is based on the [spectral-jekyll-theme] template.
[jekyll]: https://jekyllrb.com/ [jekyll]: https://jekyllrb.com/
[spectral-jekyll-theme]: https://github.com/andrewbanchich/spectral-jekyll-theme [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 # Contribute
Please see [CONTRIBUTING.md] for the juicy details. Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for the juicy details.
[contributing.md]: ./CONTRIBUTING.md

View File

@ -3,16 +3,16 @@ title: Autonomic Co-operative
email: helo@autonomic.zone email: helo@autonomic.zone
description: Sustainability, Transparency, Privacy description: Sustainability, Transparency, Privacy
baseurl: "" baseurl: ""
url: "" url: "https://autonomic.zone"
source: src source: src
destination: dist destination: dist
sass: sass:
sass_dir: ./assets/styles sass_dir: ./assets/styles
featured-image-source: featured-image-source:
500px_url: include: ["src/.well-known", "src/.nojekyll"]
github_url:
mastodon_url: https://sunbeam.city/@autonomic mastodon_url: https://sunbeam.city/@autonomic
twitter_url: https://twitter.com/autonomiccoop twitter_url: https://twitter.com/autonomiccoop
gitea_url: https://git.autonomic.zone/autonomic-cooperative/
markdown: kramdown markdown: kramdown
permalink: pretty permalink: pretty
collections: collections:
@ -25,3 +25,5 @@ exclude:
- vendor - vendor
- Gemfile - Gemfile
- Gemfile.lock - 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| Gem::Specification.new do |spec|
spec.name = "autonomic" spec.name = "autonomic"
spec.version = '0.0.0' spec.version = "0.0.0"
spec.date = '2017-09-24' spec.date = "2017-09-24"
spec.summary = "" spec.summary = ""
spec.description = "" spec.description = ""
spec.authors = ['autonomic co-operative'] spec.authors = ["autonomic co-operative"]
spec.email = 'autonomic.posteo.net' spec.email = "autonomic.posteo.net"
spec.files = 'README.md' spec.files = "README.md"
spec.add_development_dependency "jekyll", ">= 4" spec.add_development_dependency "jekyll", ">= 4"
spec.add_development_dependency "bundler", ">= 2.1.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`) || Host(`www.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.2

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"> <div class="column">
<a class="named-anchor" name="contact"></a> <a class="named-anchor" name="contact"></a>
<h3>Get in Touch</h3> <h3>Get in Touch</h3>
Contact us to discuss your project's needs and arrange a consultation: Contact us to discuss your project's needs and arrange a consultation:</br>
<a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></br></br> <b><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></b></br></br>
<a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">PGP key:</a> <b><a href="{{ '/assets/pgp/autonomic-key.asc' | relative_url }}">Download PGP key</a></b></br>
<code id="fingerprint">82FC 87C5 1A71 902F DC10 2CF5 4F90 D55B B24B 1147</code> <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"> <ul class="icons" style="margin-bottom: 0; padding-top: 1em">
<li> <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 }}"> <img alt="twitter" style="height: 2rem;" src="{{ '/assets/svg/twitter-brands.svg' | absolute_url }}">
</a> </a>
</li> </li>
<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 }}"> <img alt="mastodon" style="height: 2rem;" src="{{ '/assets/svg/mastodon-brands.svg' | absolute_url }}">
</a> </a>
</li> </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> </ul>
</div> </div>
<div class="column"> <div class="column">
<div class="copyright"> <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>
<div class="cotech-box"> <div class="cotech-box">
<a href="https://www.coops.tech/"> <a href="https://www.coops.tech/">
<img class="cotech-logo" src="{{ '/assets/images/CoTech-white-logo.png' | relative_url }}" alt="CoTech"/> <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> </a>
</div> </div>
<div style="vertical-align: bottom;"> <div style="vertical-align: bottom;">
@ -43,8 +51,14 @@
Birmingham</br> Birmingham</br>
B30 2JH</br> B30 2JH</br>
United Kingdom</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>
<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>
</div> </div>
</footer> </footer>

View File

@ -2,10 +2,11 @@
<section id="three" class="wrapper style6 special"> <section id="three" class="wrapper style6 special">
<div class="inner"> <div class="inner">
<header class="major"> <header class="major">
<h2>Cooperative Cloud: For Organisations</h2> <h2>Cooperative Cloud Infrastructure</h2>
<p> <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> </p>
<h3><a href="mailto:helo@autonomic.zone">helo@autonomic.zone</a></h3>
</header> </header>
<ul class="features"> <ul class="features">
<li class="features-item"> <li class="features-item">
@ -13,7 +14,7 @@
<div> <div>
<h3>Websites</h3> <h3>Websites</h3>
<p> <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> </p>
</div> </div>
</li> </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,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/

View File

@ -0,0 +1,10 @@
---
layout: post
title: New Co-op Cloud blog, socials and updates
description: Co-op Cloud project blog, socials and monthly updates
image: ccblog.png
category: coop, co-op, cloud, docker, swarm, libre-software, hosting,
date: 2021-07-07
---
The Co-op Cloud is starting to come into its own and we've decided to move our posts over to a dedicated [new and shiny blog](https://coopcloud.tech/blog/). We are working on opening up shared ownership of the project and want to create digital spaces where Autonomic is not implicitly having some sort of gate keeping role. We'll be writing regularly about our progress over there. We've also made new [Twitter](https://twitter.com/Coop_Cloud) and [Mastodon](https://social.coop/@coopcloud) which can you can follow along. That's all for now!

View File

@ -0,0 +1,63 @@
---
layout: post
title: Come join the good ship Autonomic!
description: Hi do you want to work with the coolest anarchist tech workers co-operative?
image: robertmccall.jpg
category: decision making, democracy, meta
date: 2021-11-25
---
## Background
Autonomic is a worker-owned co-operative of queer comrade hackers dedicated to using technology to empower people making a positive difference in the world. Since 2017, weve been successfully delivering projects in a range of sectors including renewable energy, labour organising, independent media, feminist research, migrant solidarity activism, sustainable fashion, and arms trade abolition.
We are currently 12 worker-owners, located on four continents worldwide. We are a Co-operative Society, registered in the UK with the Financial Conduct Authority. Legally, we are a freelance consortium, which means that we operate as a group of self-employed contractors, and are responsible for our own individual income tax.
Autonomic aspires to follow the [7 co-operative principles as defined by the International Co-operative Alliance](https://www.ica.coop/en/cooperatives/cooperative-identity).
We're currently looking to build capacity in the co-op in key areas to help take us to the next level.
## Pay
We are currently paid £16 per hour for all work.
Everyone in the co-op will always be paid the same rate, which we decide on collectively and adjust according to how well we're doing.
## What we're looking for:
We are looking for folks who have expertise in the following areas:
### Required
- Care, communicatiton and compassion. Trust. Comradeship. Each according to their need.
- Available for around 10-20 hours per week **between 8am UTC and 3pm UTC**
### Skill areas
We are in need of people who have experience or interest in at least 2 of these areas:
- Project management: progress tracking and planning, budgeting and estimates.
- Client communications / relations / meeting, conflict resolution.
- Infrastrucure skills: Debian, Ansible, Git, Docker, Docker Swarm in the context of [Co-op Cloud](https://coopcloud.tech).
- Wordpress development (front end and back end): PHP, CSS, Composer, Docker.
- Finance administration: invoicing, tax, forecasting,
### Bonus/Nice to Have
- Wordpress plug-in development
- Drupal development
- New business development
## Process
People of color, women, genderqueer, non-binary and trans folks, neurodiverse and queer folks strongly encouraged to apply.
Email helo@autonomic.zone with your CV (doesn't have to be fancy, just a list of work) and a little bit about yourself and what you're looking for work wise.
If we think you might be suitable for these roles, you'll be invited for a few chats with members of the co-op who will show you more about the kinds of work we do and be able to answer any questions you have.
If we want to take you on, we'll then have a vote amongst our members and you can start working for us right away as a "potential member". After 100 hours of work you can be invited to join the co-op as a full member.
<hr>
_image by Robert McCall_

View File

@ -0,0 +1,14 @@
---
layout: post
title: The Co-op Cloud Federation Proposal
description:
image: ccforest.jpg
category: coop cloud, decision making, democracy
date: 2022-04-14
---
Following on in [the tradition](https://autonomic.zone/blog/new-coop-cloud-blog-and-socials/) of making [short blog posts](https://autonomic.zone/blog/co-op-cloud/) about [Co-op Cloud](https://coopcloud.tech) on this blog, here comes another one!
We're delighted to announce that we have finally published the Co-op Cloud federation proposal. It's a document which aims to formalise the organisation of the project, focusing on a democratic process. It's open for comments, feedback, critique & amendments.
Autonomic has had a central role in the organising of this project until now, but we'd like to step back and open up space for others. The proposal is part of formalising that and we're excited to see who will step in! You can find out more on the [Co-op Cloud blog](https://coopcloud.tech/blog/federation-proposal/) or jump straight to [the proposal](https://pad.autonomic.zone/s/MLafJE2jC).

View File

@ -0,0 +1,36 @@
---
layout: post
title: Publishing our Ansible roles
description:
image: infra.jpg
category: ansible, automation, infrastructure
date: 2022-05-30
---
We're delighted to announce that we're publishing our Ansible roles
into the open under [`git.autonomic.zone/autonomic-cooperative/...`](https://git.autonomic.zone/explore/repos?q=ansible&topic=1) at long last 🥳
They've always been licensed as libre software but due to the way we managed
our internal infrastructure configurations, they were embedded in a private
repository.
The roles are currently lacking documentation and written for very specific
Autonomic needs but they might be handy as a learning resource or a base to
fork from. We'd happily accept contributions to generalise them.
In particular, we've been relying on and running
[`autonomic.new-hetzner`](https://git.autonomic.zone/autonomic-cooperative/autonomic.new-hetzner)
for years, so it is battle tested. The role bootstraps a Hetzner VPS from
scratch and provisions it with a hardened SSH configuration, firewalls, user
accounts and some basic packages and a shiny MOTD.
All roles are CI tested on every commit with [Molecule](https://molecule.readthedocs.io/en/latest/) so things don't break.
[Expanding re-use with shared infrastructure](https://community.coops.tech/t/cotech-gathering-ansible-and-shared-infrastructure-session/1107)
is someting we've always been working on at Autonomic. We have an ongoing
critique of Ansible and the pros/cons of when it is a good choice to use. This
ultimately lead us to start projects like [Co-op
Cloud](https://coopcloud.tech/). However, we still think Ansible is pretty good
at handling more complicated server provisioning needs.
Happy Infra Hacking.

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 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.