Add agate
This commit is contained in:
parent
ab78eb1165
commit
728c5503a9
4 changed files with 93 additions and 0 deletions
30
agate/Dockerfile
Normal file
30
agate/Dockerfile
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
FROM alpine:latest AS builder
|
||||||
|
RUN apk add cargo
|
||||||
|
RUN wget -O source.tar.gz \
|
||||||
|
$(wget -qO- https://api.github.com/repos/mbrubeck/agate/releases/latest \
|
||||||
|
| sed -nE 's/^.*"tarball_url"\s*:\s*"([^"]+)".*$/\1/p' \
|
||||||
|
) \
|
||||||
|
&& tar xzf source.tar.gz \
|
||||||
|
&& mv /mbrubeck-agate-* /agate \
|
||||||
|
&& cd agate \
|
||||||
|
&& cargo build --release
|
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:latest
|
||||||
|
RUN apk add --update --no-cache libgcc \
|
||||||
|
&& mkdir -p /app/.certificates \
|
||||||
|
&& mkdir /gmi \
|
||||||
|
&& chown daemon:daemon /app/.certificates
|
||||||
|
COPY --from=builder /agate/target/release/agate /usr/bin/agate
|
||||||
|
COPY ./start.sh /app
|
||||||
|
|
||||||
|
ENV LANG=en-US \
|
||||||
|
HOSTNAME=example.com
|
||||||
|
VOLUME ["/app/.certificates", "/gmi"]
|
||||||
|
EXPOSE 1965
|
||||||
|
|
||||||
|
USER daemon
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/sh", "start.sh"]
|
||||||
|
|
53
agate/README.md
Normal file
53
agate/README.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# Install agate in a docker container
|
||||||
|
(these instructions assume you use linux and have some experience with both docker and the command line)
|
||||||
|
## obtain the source code
|
||||||
|
|
||||||
|
There are currently no container images online so you have to build the image yourself before you can use it.
|
||||||
|
There are two options available for this: downloading a release or cloning the repository with `git`.
|
||||||
|
I will explain both methods but if you're unsure which method to use, I would recommend the release for new comers because it's probably more tested so you'll encounter less problems.
|
||||||
|
|
||||||
|
### downloading the release tarball
|
||||||
|
|
||||||
|
Download the tarball. Go to [https://github.com/mbrubeck/agate/releases/latest](https://github.com/mbrubeck/agate/releases/latest), and copy the url of the source code tarball.
|
||||||
|
|
||||||
|
```
|
||||||
|
wget URL
|
||||||
|
```
|
||||||
|
|
||||||
|
Then unpack the tarball and remove it afterwards:
|
||||||
|
```
|
||||||
|
tar -xzf tarball.tar.gz
|
||||||
|
rm tarball.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
### clone the repository with git
|
||||||
|
|
||||||
|
I assume you have git already installed. If not, please search on how to do it in the internet.
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/mbrubeck/agate
|
||||||
|
cd agate
|
||||||
|
```
|
||||||
|
|
||||||
|
## build the image
|
||||||
|
Enter the `tools/docker` directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd tools/docker
|
||||||
|
```
|
||||||
|
And now build the docker image:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker build -t agate .
|
||||||
|
```
|
||||||
|
This process will take a few minutes because all the rust modules have to be compiled from source.
|
||||||
|
|
||||||
|
## start the docker container
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run -t -d --name agate -p 1965:1965 -v /var/www/gmi:/gmi -v /var/www/gmi/.certificates:/app/.certificates -e HOSTNAME=example.org -e LANG=en-US agate:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
You have to replace `/var/www/gmi/` with the folder where you'd like to have gemtext files and `/var/www/gmi/.certificates/` with the folder where you'd like to have your certificates stored. You also have to have to replace `example.org` with your domain name and if plan to speak in a different language than english in your gemini space than you should replace `en-US` with your countries language code (for example de-DE or fr-CA).
|
||||||
|
|
||||||
|
## That's it! Now have agate running in a docker container!
|
6
agate/start.sh
Normal file
6
agate/start.sh
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec agate --content /gmi/ \
|
||||||
|
--hostname ${HOSTNAME} \
|
||||||
|
--lang ${LANG}
|
||||||
|
|
|
@ -14,3 +14,7 @@ services:
|
||||||
toolbox:
|
toolbox:
|
||||||
build: ./toolbox
|
build: ./toolbox
|
||||||
image: elfrinjo/toolbox:latest
|
image: elfrinjo/toolbox:latest
|
||||||
|
|
||||||
|
agate:
|
||||||
|
build: ./agate
|
||||||
|
image: elfrinjo/agate:latest
|
||||||
|
|
Reference in a new issue