Compare commits
10 commits
b38e85e5a5
...
252f12e98b
Author | SHA1 | Date | |
---|---|---|---|
252f12e98b | |||
98732b5867 | |||
41cfc9d1ce | |||
73b44bf5e9 | |||
b5033cee1f | |||
d15c5557aa | |||
cfa6660f03 | |||
a004d10ed4 | |||
ac09290b93 | |||
![]() |
6d2f85f981 |
14 changed files with 84 additions and 77 deletions
.woodpecker.yamlDockerfileREADME.md
data.template/posts
docker-compose.build.ymldocker-compose.ymlpackage-lock.jsonscripts
src/views/themes
|
@ -1,18 +1,19 @@
|
|||
# yes
|
||||
when:
|
||||
branch: ['dev', 'stable']
|
||||
branch: ["dev", "stable"]
|
||||
event: ["push", "manual"]
|
||||
steps:
|
||||
- name: build
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [ gitpat ]
|
||||
settings:
|
||||
repo: git.iwakura.rip/hex/disseminate
|
||||
repo: git.iwakura.rip/hex/jabe
|
||||
platforms: linux/amd64
|
||||
dockerfile: Dockerfile
|
||||
tags: ["${CI_COMMIT_BRANCH}-latest","${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA}"]
|
||||
tags:
|
||||
["${CI_COMMIT_BRANCH}-latest", "${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA}"]
|
||||
username: hex
|
||||
registry: git.iwakura.rip
|
||||
registry:
|
||||
git.iwakura.rip
|
||||
#insecure: true
|
||||
password:
|
||||
password:
|
||||
from_secret: gitpat
|
||||
|
|
11
Dockerfile
11
Dockerfile
|
@ -18,7 +18,8 @@ RUN cp -r /tmp/*.json /tmp/build/ && \
|
|||
cp -r /tmp/src/views /tmp/build/src/ && \
|
||||
cp -r /tmp/data.template /tmp/build && \
|
||||
cp -r /tmp/scripts/docker_bootstrapper.sh /tmp/build/bootstrapper.sh && \
|
||||
cp -r /tmp/scripts/docker_run.sh /tmp/build/runner.sh
|
||||
cp -r /tmp/scripts/docker_run.sh /tmp/build/runner.sh && \
|
||||
cp -r /tmp/static /tmp/build/
|
||||
|
||||
# The final version of disseminate is now in /tmp/build
|
||||
|
||||
|
@ -39,11 +40,11 @@ RUN deluser node
|
|||
# We want to run disseminate as a non-root user.
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
RUN addgroup -g $GID disseminate && \
|
||||
adduser --home /app --uid $UID -G disseminate --disabled-password disseminate
|
||||
RUN addgroup -g $GID jabe && \
|
||||
adduser --home /app --uid $UID -G jabe --disabled-password jabe
|
||||
|
||||
# Give our non-root user access to /app
|
||||
RUN chown -R disseminate:disseminate /app
|
||||
RUN chown -R jabe:jabe /app
|
||||
|
||||
# Installing bash, mostly for debugging.
|
||||
RUN apk add bash
|
||||
|
@ -52,7 +53,7 @@ RUN apk add bash
|
|||
COPY --chown=$UID:$GID --from=compiled /tmp/build/ /app
|
||||
RUN chown -R $UID:$GID /app
|
||||
# Switching to user.
|
||||
USER disseminate
|
||||
USER jabe
|
||||
|
||||
# Installing the dependencies.
|
||||
RUN yarn install --production
|
||||
|
|
59
README.md
59
README.md
|
@ -1,56 +1,37 @@
|
|||
<h1 align="center">Disseminate</h1>
|
||||
<h1 align="center">JABE - Just Another Blogging Engine</h1>
|
||||
<div style="margin:auto;" align="center">
|
||||
<a href="https://www.buymeacoffee.com/hexlocation" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;"></a>
|
||||
<a href="https://ci.iwakura.rip/repos/1/branches/stable" target="_blank">
|
||||
<img src="https://ci.iwakura.rip/api/badges/1/status.svg?branch=stable" alt="status-badge" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## A short introduction
|
||||
|
||||
## A short introduction.
|
||||
|
||||
*Disseminate* is a blogging platform designed to be lightweight, easy to use & powered by Markdown.
|
||||
_JABE_ is a blogging platform designed to be lightweight, easy to use & powered by Markdown.
|
||||
It stems from an issue i've come across, where no blogging platform i could find was:
|
||||
|
||||
* easy to deploy.
|
||||
* has fast loading times.
|
||||
* simple enough for my -10 iq brain.
|
||||
|
||||
## State of Project
|
||||
|
||||
Disseminate is a work-in-progress, although it is in a more than usable state.
|
||||
|
||||
## Blogs using Disseminate
|
||||
|
||||
* [My own :)](https://penhub.nl)
|
||||
- easy to deploy.
|
||||
- has fast loading times.
|
||||
- simple enough for my -10 iq brain.
|
||||
|
||||
## Opening an issue.
|
||||
|
||||
Registrations are open again! Unfortunately however, i have to manually accept each account.
|
||||
Please contact me via:
|
||||
|
||||
* email (hex@clatter.cc)
|
||||
* matrix (@hex:penhub.nl)
|
||||
* telegram (@inimitableX)
|
||||
* discord (@hex.maybe)
|
||||
## State of Project
|
||||
|
||||
JABE is a work-in-progress, although it is in a more than usable state.
|
||||
|
||||
## Blogs using JABE
|
||||
|
||||
- [My own :)](https://blog.iwakura.rip)
|
||||
|
||||
## To-do
|
||||
|
||||
to get your account accepted.
|
||||
|
||||
## To-do
|
||||
|
||||
- [x] [HIGH] Server-side parsing.
|
||||
- [x] [MEDIUM] Docker build system.
|
||||
- [x] [MEDIUM] Proper metadata (title, date etc).
|
||||
- [x] [MEDIUM] Proper metadata (title, date etc).
|
||||
- [x] [MEDIUM] **Automated** prebuilt docker images.
|
||||
- [ ] [LOW] Caching for faster load times.
|
||||
- [ ] [LOW] Interface for blog management (web ui?).
|
||||
- [ ] [LOW] Alternative frontend (solution)? (EJS is pretty primitive!)
|
||||
|
||||
## License
|
||||
|
||||
Disseminate uses the GNU GPLv3 license. The two important points (in my opinion) are as follows:
|
||||
* Any modifications made to disseminate should be open sourced.
|
||||
* Any projects forking or using disseminate source code must be released under the same license (GNU GPLv3).
|
||||
|
||||
Keep in mind that these two points are important **in my opinion**! Everything stated in the GNU GPLv3 license still applies.
|
||||
(Paid) themes do *not* have to be open-sourced.
|
||||
|
||||
## License
|
||||
|
||||
JABE uses the GNU GPLv3 license.
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Welcome to Disseminate!
|
||||
|
||||
# Welcome to JABE
|
||||
|
||||
Welcome, user! We are glad to have you on board!
|
||||
To start, find the "posts" directory in the data folder you have created, or mounted using docker.
|
||||
This is the same directory you put your config file in.
|
||||
This is the same directory you put your config file in.
|
||||
|
||||
Create a file named "hello.md", and start the file with:
|
||||
|
||||
Create a file named "hello.md", and start the file with:
|
||||
```
|
||||
# [Your Title]
|
||||
```
|
||||
|
||||
Now you can start writing blog posts!
|
||||
```
|
||||
|
||||
Now you can start writing blog posts!
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
services:
|
||||
disseminate:
|
||||
jabe:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
version: '3'
|
||||
version: "3"
|
||||
services:
|
||||
disseminate:
|
||||
container_name: disseminate
|
||||
image: git.clatter.cc/hexlocation/disseminate
|
||||
jabe:
|
||||
container_name: jabe
|
||||
image: git.iwakura.rip/hex/jabe:stable-latest
|
||||
volumes:
|
||||
- ./data:/app/data # bind mount is recommended.
|
||||
ports:
|
||||
|
|
2
package-lock.json
generated
2
package-lock.json
generated
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "disseminate",
|
||||
"name": "JABE",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
cat << EOF
|
||||
cat <<EOF
|
||||
____ ______________ __
|
||||
/ __ \/ _/ ___/ ___// / docker edition
|
||||
/ / / // / \__ \\__ \/ / launching bootstrapper...
|
||||
|
@ -9,7 +9,7 @@ EOF
|
|||
if [ -z "$(find data -mindepth 1 -maxdepth 1)" ]; then
|
||||
echo '[bootstrapper] data directory is empty, copying template.'
|
||||
cp -r data.template/* data/
|
||||
chown -R disseminate:disseminate data/
|
||||
chown -R jabe:jabe data/
|
||||
fi
|
||||
|
||||
# echo "[bootstrapper] checking permissions for data folder"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Disseminate Build Script
|
||||
# This script builds disseminate into a docker container, using the dockerfile provided in the repository.
|
||||
# JABE Build Script
|
||||
# This script builds jabe into a docker container, using the dockerfile provided in the repository.
|
||||
|
||||
docker buildx build --build-arg UID=1000 --build-arg GID=1000 . -t disseminate:latest
|
||||
docker buildx build --build-arg UID=1000 --build-arg GID=1000 . -t jabe:latest
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Disseminate docker test script
|
||||
# JABE docker test script
|
||||
mkdir ignore
|
||||
cd ignore
|
||||
|
||||
docker run --rm -it -p 3024:3024 -v ./data:/app/data disseminate:latest
|
||||
docker run --rm -it -p 3024:3024 -v ./data:/app/data jabe:latest
|
||||
|
||||
cd ..
|
||||
rm -R ignore
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Disseminate docker test script
|
||||
# JABE docker test script
|
||||
|
||||
mkdir ignore
|
||||
cd ignore
|
||||
docker run --rm -it -p 3024:3024 --user 1000:1000 -v ./data:/app/data disseminate:latest /bin/bash
|
||||
docker run --rm -it -p 3024:3024 --user 1000:1000 -v ./data:/app/data jabe:latest /bin/bash
|
||||
cd ..
|
||||
rm ignore
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div id="footer-content">
|
||||
<a style="color: gray !important; opacity: 30%;" href="https://git.clatter.cc/hexlocation/disseminate">powered by Disseminate</a>
|
||||
<a style="color: gray !important; opacity: 30%;" href="https://git.iwakura.rip/hex/jabe">powered by JABE</a>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div id="footer-content">
|
||||
<a style="display: none;color: gray !important; opacity: 30%;" href="https://git.clatter.cc/hexlocation/disseminate">powered by Disseminate</a>
|
||||
<a style="display: none;color: gray !important; opacity: 30%;" href="https://git.iwakura.rip/hex/jabe">powered by JABE</a>
|
||||
</div>
|
||||
|
|
|
@ -12,13 +12,35 @@
|
|||
margin: auto;
|
||||
width: 50%;
|
||||
}
|
||||
code {
|
||||
blockquote {
|
||||
margin-left: 0;
|
||||
padding-left: 10px;
|
||||
margin-right: 0px;
|
||||
color: gray;
|
||||
}
|
||||
blockquote p {
|
||||
padding-left: 5px;
|
||||
<% if(config.hasOwnProperty("themeOpts") && config.themeOpts.hasOwnProperty("accentColor")) { %>
|
||||
border-left: 3px solid <%= config.themeOpts.accentColor %>;
|
||||
<% } else { %>
|
||||
border-left: 3px solid white;
|
||||
<% } %>
|
||||
}
|
||||
blockquote p {
|
||||
display: inline;
|
||||
}
|
||||
code, pre {
|
||||
font-family: "Source Code Pro";
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
border: 1px #2e2e2e solid;
|
||||
background-color: #2e2e2e;
|
||||
border: 1px #111111 solid;
|
||||
background-color: #111111;
|
||||
border-radius: 5px;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
width: auto !important;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
hr {
|
||||
color: white;
|
||||
|
@ -41,6 +63,8 @@
|
|||
<% } %>
|
||||
}
|
||||
#post-content {
|
||||
word-wrap: break-word;
|
||||
white-space: normal;
|
||||
font-family: "Arial";
|
||||
}
|
||||
a {
|
||||
|
|
Reference in a new issue