Compare commits

...

10 commits

Author SHA1 Message Date
hex
252f12e98b Merge pull request 'some more fixes...' (#4) from dev into stable
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #4
2024-11-18 14:10:31 +01:00
98732b5867 some more fixes... 2024-11-18 14:10:07 +01:00
hex
41cfc9d1ce Merge pull request 'fix blockquote' (#3) from dev into stable
Reviewed-on: #3
2024-11-18 13:55:35 +01:00
73b44bf5e9 fix blockquote 2024-11-18 13:55:15 +01:00
hex
b5033cee1f Merge pull request 'fix: woodpecker not building stuff' (#2) from dev into stable
Reviewed-on: #2
2024-11-18 12:13:46 +01:00
d15c5557aa fix 2024-11-18 12:12:32 +01:00
hex
cfa6660f03 Merge pull request 'yay' (#1) from dev into stable
Reviewed-on: #1
2024-11-18 12:07:51 +01:00
a004d10ed4 some more renaming 2024-11-18 12:07:35 +01:00
ac09290b93 rename lol 2024-11-18 11:58:54 +01:00
hex
6d2f85f981 fix: static folder not getting transferred 2024-08-14 02:16:09 +02:00
14 changed files with 84 additions and 77 deletions

View file

@ -1,18 +1,19 @@
# yes # yes
when: when:
branch: ['dev', 'stable'] branch: ["dev", "stable"]
event: ["push", "manual"] event: ["push", "manual"]
steps: steps:
- name: build - name: build
image: woodpeckerci/plugin-docker-buildx image: woodpeckerci/plugin-docker-buildx
secrets: [ gitpat ]
settings: settings:
repo: git.iwakura.rip/hex/disseminate repo: git.iwakura.rip/hex/jabe
platforms: linux/amd64 platforms: linux/amd64
dockerfile: Dockerfile 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 username: hex
registry: git.iwakura.rip registry:
git.iwakura.rip
#insecure: true #insecure: true
password: password:
from_secret: gitpat from_secret: gitpat

View file

@ -18,7 +18,8 @@ RUN cp -r /tmp/*.json /tmp/build/ && \
cp -r /tmp/src/views /tmp/build/src/ && \ cp -r /tmp/src/views /tmp/build/src/ && \
cp -r /tmp/data.template /tmp/build && \ cp -r /tmp/data.template /tmp/build && \
cp -r /tmp/scripts/docker_bootstrapper.sh /tmp/build/bootstrapper.sh && \ 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 # 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. # We want to run disseminate as a non-root user.
ARG UID=1000 ARG UID=1000
ARG GID=1000 ARG GID=1000
RUN addgroup -g $GID disseminate && \ RUN addgroup -g $GID jabe && \
adduser --home /app --uid $UID -G disseminate --disabled-password disseminate adduser --home /app --uid $UID -G jabe --disabled-password jabe
# Give our non-root user access to /app # 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. # Installing bash, mostly for debugging.
RUN apk add bash RUN apk add bash
@ -52,7 +53,7 @@ RUN apk add bash
COPY --chown=$UID:$GID --from=compiled /tmp/build/ /app COPY --chown=$UID:$GID --from=compiled /tmp/build/ /app
RUN chown -R $UID:$GID /app RUN chown -R $UID:$GID /app
# Switching to user. # Switching to user.
USER disseminate USER jabe
# Installing the dependencies. # Installing the dependencies.
RUN yarn install --production RUN yarn install --production

View file

@ -1,56 +1,37 @@
<h1 align="center">Disseminate</h1> <h1 align="center">JABE - Just Another Blogging Engine</h1>
<div style="margin:auto;" align="center"> <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"> <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" /> <img src="https://ci.iwakura.rip/api/badges/1/status.svg?branch=stable" alt="status-badge" />
</a> </a>
</div> </div>
## A short introduction
## A short introduction. _JABE_ is a blogging platform designed to be lightweight, easy to use & powered by Markdown.
*Disseminate* 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: It stems from an issue i've come across, where no blogging platform i could find was:
* easy to deploy. - easy to deploy.
* has fast loading times. - has fast loading times.
* simple enough for my -10 iq brain. - 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)
## Opening an issue. ## State of Project
Registrations are open again! Unfortunately however, i have to manually accept each account. JABE is a work-in-progress, although it is in a more than usable state.
Please contact me via:
## Blogs using JABE
* email (hex@clatter.cc)
* matrix (@hex:penhub.nl) - [My own :)](https://blog.iwakura.rip)
* telegram (@inimitableX)
* discord (@hex.maybe) ## To-do
to get your account accepted.
## To-do
- [x] [HIGH] Server-side parsing. - [x] [HIGH] Server-side parsing.
- [x] [MEDIUM] Docker build system. - [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. - [x] [MEDIUM] **Automated** prebuilt docker images.
- [ ] [LOW] Caching for faster load times. - [ ] [LOW] Caching for faster load times.
- [ ] [LOW] Interface for blog management (web ui?). - [ ] [LOW] Interface for blog management (web ui?).
- [ ] [LOW] Alternative frontend (solution)? (EJS is pretty primitive!) - [ ] [LOW] Alternative frontend (solution)? (EJS is pretty primitive!)
## License ## License
Disseminate uses the GNU GPLv3 license. The two important points (in my opinion) are as follows: JABE uses the GNU GPLv3 license.
* 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.

View file

@ -1,13 +1,13 @@
# Welcome to Disseminate! # Welcome to JABE
Welcome, user! We are glad to have you on board! 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. 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] # [Your Title]
``` ```
Now you can start writing blog posts!
Now you can start writing blog posts!

View file

@ -1,5 +1,5 @@
services: services:
disseminate: jabe:
build: build:
context: . context: .
args: args:

View file

@ -1,8 +1,8 @@
version: '3' version: "3"
services: services:
disseminate: jabe:
container_name: disseminate container_name: jabe
image: git.clatter.cc/hexlocation/disseminate image: git.iwakura.rip/hex/jabe:stable-latest
volumes: volumes:
- ./data:/app/data # bind mount is recommended. - ./data:/app/data # bind mount is recommended.
ports: ports:

2
package-lock.json generated
View file

@ -1,5 +1,5 @@
{ {
"name": "disseminate", "name": "JABE",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {

View file

@ -1,4 +1,4 @@
cat << EOF cat <<EOF
____ ______________ __ ____ ______________ __
/ __ \/ _/ ___/ ___// / docker edition / __ \/ _/ ___/ ___// / docker edition
/ / / // / \__ \\__ \/ / launching bootstrapper... / / / // / \__ \\__ \/ / launching bootstrapper...
@ -9,7 +9,7 @@ EOF
if [ -z "$(find data -mindepth 1 -maxdepth 1)" ]; then if [ -z "$(find data -mindepth 1 -maxdepth 1)" ]; then
echo '[bootstrapper] data directory is empty, copying template.' echo '[bootstrapper] data directory is empty, copying template.'
cp -r data.template/* data/ cp -r data.template/* data/
chown -R disseminate:disseminate data/ chown -R jabe:jabe data/
fi fi
# echo "[bootstrapper] checking permissions for data folder" # echo "[bootstrapper] checking permissions for data folder"

View file

@ -1,4 +1,4 @@
# Disseminate Build Script # JABE Build Script
# This script builds disseminate into a docker container, using the dockerfile provided in the repository. # 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

View file

@ -1,8 +1,8 @@
# Disseminate docker test script # JABE docker test script
mkdir ignore mkdir ignore
cd 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 .. cd ..
rm -R ignore rm -R ignore

View file

@ -1,7 +1,7 @@
# Disseminate docker test script # JABE docker test script
mkdir ignore mkdir ignore
cd 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 .. cd ..
rm ignore rm ignore

View file

@ -1,3 +1,3 @@
<div id="footer-content"> <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> </div>

View file

@ -1,3 +1,3 @@
<div id="footer-content"> <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> </div>

View file

@ -12,13 +12,35 @@
margin: auto; margin: auto;
width: 50%; 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"; font-family: "Source Code Pro";
padding-left: 2px; padding-left: 2px;
padding-right: 2px; padding-right: 2px;
border: 1px #2e2e2e solid; border: 1px #111111 solid;
background-color: #2e2e2e; background-color: #111111;
border-radius: 5px; border-radius: 5px;
white-space: pre-wrap;
word-wrap: break-word;
width: auto !important;
left: 0;
right: 0;
} }
hr { hr {
color: white; color: white;
@ -41,6 +63,8 @@
<% } %> <% } %>
} }
#post-content { #post-content {
word-wrap: break-word;
white-space: normal;
font-family: "Arial"; font-family: "Arial";
} }
a { a {