diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e649936 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +gitea diff --git a/README.md b/README.md index 735a240..1dfa62a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,205 @@ # Static Publishing Platform -based on Gitea, Teabag, Static CMS, Drone, and Garage +created at: 2023-02-09. +if you are reading this file years later, +it is very probably obsolete. + +based on: + - Gitea: https://github.com/superboum/gitea + - Teabag: https://github.com/denyskon/teabag + - Static CMS: https://www.staticcms.org/ + - Drone: https://github.com/harness/drone + - Garage: git.deuxfleurs.fr/Deuxfleurs/garage/ ## Install Gitea +The recommended docker-compose is a good start for this toy example: +https://docs.gitea.io/en-us/install-with-docker/ + +You need to configure CORS: + +```ini +[cors] +ENABLED=true +ALLOW_DOMAIN=* +ALLOW_CREDENTIALS=true +SCHEME=* +HEADERS=Content-Type,User-Agent,Authorization +``` + +The last entry is required but ignored in Gitea version < 1.19, +you must instead use a patched image to allow the custom header +`Content-Type`. For example, I am using this one: `superboum/gitea:1.17.4-cors`. + +Now you are ready to start your gitea instance: + +``` +docker-compose up -d +``` + +Now go to `http://localhost:3000` and configure your Gitea instance. +Create an administrator account by unfolding the last section. + ## Install Teabag -## Add Static CMS to your blog +The first step is to create some tokens for Teabag in Gitea. +Go to this page: http://localhost:3000/user/settings/applications +And create an Oauth2 application with the following parameters: + - name: `Teabag` + - callback: `http://localhost:3001/callback` + +Now, use the example env file from the official repo as a template. +Mine look like that: + +```ini +HOST=0.0.0.0 +PORT=3001 +SESSION_SECRET=JdNF... + +GITEA_KEY=968c9... +GITEA_SECRET=gto_65p +GITEA_BASE_URL=http://localhost:3000 +GITEA_AUTH_URI=login/oauth/authorize +GITEA_TOKEN_URI=login/oauth/access_token +GITEA_USER_URI=api/v1/user +CALLBACK_URI=http://localhost:3001/callback +``` + +This file is fetched from `./env/teabag.env` or `/etc/teabag/teabag.env`, +so pick one of this path. + +Check that teabag is running: + +``` +$ curl -I http://localhost:3001 +HTTP/1.1 200 OK +Date: Thu, 09 Feb 2023 13:32:15 GMT +Content-Length: 73 +Content-Type: text/html; charset=utf-8 +``` + +## Create a blog with Jekyll + +I don't really like CDNs so we will locally download the javasript file once and for all. +For this example, we will create a basic jekyll blog. + +``` +nix-shell -p bundler +bundler install jekyll +bundle exec jekyll new my-blog +cd my-blog +bundle install +bundle exec jekyll serve +``` + +Now you website should be available at: `http://localhost:4000`. + +You must now create a repository for your website on our target gitea instance. +Mine is `quentin/my-blog`. + +Use the gitea UI and then: + +``` +git init +git add . +git commit + +git remote add origin http://localhost:3000/quentin/my-blog.git +git push -u origin main +``` + + +## Add "Static CMS" to your blog + +In your blog folder (`my-blog`), create a file at this path `admin/index.html` with this content: + +```html + + +
+ + +