# lumbung.space

[![Build Status](https://drone.autonomic.zone/api/badges/ruangrupa/lumbung.space/status.svg?ref=refs/heads/main)](https://drone.autonomic.zone/ruangrupa/lumbung.space)

![lumbung.space logo](https://lumbung.space/img/alt-lumbung-logo.jpeg)

> lumbung.space is an online platform by and for the lumbung-interlokal and lumbung artists. Many of the artists and collectives invited for documenta fifteen are located far away from each other, with their own contextual realities and vulnerabilities. To be able to work together over such distances, the act of documenting the process, writing together, and keeping each other informed within the network is one of the most important parts of the process of building the lumbung. This process is known as harvesting. Thus, lumbung.space was made to provide a number of tools and a collective publishing outlet for this diverse network to experiment and share the collective processes through harvests. Like a vibrant archive and a digital living room, it allows connection, support, and sharing of knowledge. Learn more on [lumbung.space](https://lumbung.sace)...

## Technical FAQ

### How does the CI/CD work?

The [`.drone.yml`](./.drone.yml) triggers a build on [drone.autonomic.zone](https://drone.autonomic.zone/ruangrupa/lumbung.space) of the [`Dockerfile.hugo`](./Dockerfile.hugo) and the [`Dockerfile.scripts`](./Dockerfile.scripts) and then deploys the [`compose.yml`](./compose.yml) stack using `docker stack deploy`.

### How often is the content regenerated?

See the `sleep ...` statements in the [`compose.yml`](./compose.yml).

### How do I see if content generation is working?

(requires `lumbung.space` docker context)

- `docker service logs -f beta_lumbung_space_peertube`
- `docker service logs -f beta_lumbung_space_calendar`
- `docker service logs -f beta_lumbung_space_feed`

Where `beta_lumbung_space_<service-name>` and you see the service name in the [`compose.yml`](./compose.yml).

### How do I add a feed?

Add your RSS feed URL to [`feeds_list.txt`](./feeds_list.txt) and don't forget [this deploy step](https://git.autonomic.zone/ruangrupa/lumbung.space#deploy-a-new-feeds_list-txt).

### How do I wipe all the generated content?

(requires `lumbung.space` docker context)

`docker exec -it $(docker container ls -q -f name=beta_lumbung_space_app) bash -c "rm -rf /src/content/*"`

## Hacking

### Generate the site

[Install Hugo](https://gohugo.io/getting-started/installing/) and `hugo serve --watch`

### Generate `lumbung[dot]space` posts

Do this manually first:

```
mkdir -p content
python3 -m venv .venv && source .venv/bin/activate
pip install git+https://git.autonomic.zone/ruangrupa/konfluks

export CALENDAR_URL="https://cloud.lumbung.space/remote.php/dav/public-calendars/WbnHM8YdCkKT6bcT?export"
export OUTPUT_DIR=content/calendar
konfluks-cal

export OUTPUT_DIR=content/tv
konfluks-vid

export OUTPUT_DIR=content/shouts
konfluks-feed  # reads ./feeds_list.txt

export OUTPUT_DIR=content/social
export MASTODON_AUTH_TOKEN=foobar
konfluks-hash
```

Afterwards, you can automatically run it with `make gen`.

After a `git pull`, you may need to run `pip install git+https://git.autonomic.zone/ruangrupa/konfluks` again.

### Manually deploying new images

- `docker login -u decentral1se -p $(logins/dockerhub/decentral1se)`
- `make push-hugo`
- `make push-scripts`

### Manually deploy the site

(requires `lumbung.space` docker context)

- `make deploy`

### Deploy a new `feeds_list.txt`

Increment the `_v<n>` (e.g. `v1` -> `v2`) in [`compose.yml`](./compose.yml) `configs` to avoid any deployment error.
