Compare commits
2 Commits
30c3b0c37b
...
a9d2633107
Author | SHA1 | Date | |
---|---|---|---|
a9d2633107 | |||
506d16e0c9 |
141
README.md
141
README.md
@ -4,85 +4,112 @@
|
|||||||

|

|
||||||

|

|
||||||
|
|
||||||
This repo contains all the source code for my personal website, [ngn.tf](https://ngn.tf)
|
This repo contains all the source code for my personal website,
|
||||||
All code is licensed under AGPL version 3 (see [LICENSE.txt](LICENSE.txt))
|
[ngn.tf](https://ngn.tf) All code is licensed under AGPL version 3 (see
|
||||||
|
[LICENSE.txt](LICENSE.txt))
|
||||||
|
|
||||||
## Directory structure
|
## Directory structure
|
||||||
|
|
||||||
### `app`
|
### `app`
|
||||||
|
|
||||||
Contains frontend application, written with SvelteKit. It supports full SSR.
|
Contains frontend application, written with SvelteKit. It supports full SSR.
|
||||||
Contains modified CSS from [github-markdown-css](https://github.com/sindresorhus/github-markdown-css)
|
Contains modified CSS from
|
||||||
and fonts from [NerdFonts](https://www.nerdfonts.com/)
|
[github-markdown-css](https://github.com/sindresorhus/github-markdown-css) and
|
||||||
|
fonts from [NerdFonts](https://www.nerdfonts.com/)
|
||||||
|
|
||||||
### `api`
|
### `api`
|
||||||
Contains the API server, written in Go. It uses the [Fiber](https://github.com/gofiber/fiber) web
|
|
||||||
framework which offers an [Express](https://expressjs.com/) like experience. I choose Fiber since I've used
|
|
||||||
worked with express a lot in the past. However previously the I was using [Gin](https://github.com/gin-gonic/gin)
|
|
||||||
(see history section).
|
|
||||||
|
|
||||||
API stores all the data in a local SQLite(3) database. Go doesn't support SQLite3 out of the box so
|
Contains the API server, written in Go. It uses the
|
||||||
I'm using [mattn's sqlite3 driver](https://github.com/mattn/go-sqlite3).
|
[Fiber](https://github.com/gofiber/fiber) web framework which offers an
|
||||||
|
[Express](https://expressjs.com/) like experience. I choose Fiber since I've
|
||||||
|
used worked with express a lot in the past. However previously the I was using
|
||||||
|
[Gin](https://github.com/gin-gonic/gin) (see history section).
|
||||||
|
|
||||||
|
API stores all the data in a local SQLite(3) database. Go doesn't support
|
||||||
|
SQLite3 out of the box so I'm using
|
||||||
|
[mattn's sqlite3 driver](https://github.com/mattn/go-sqlite3).
|
||||||
|
|
||||||
### `doc`
|
### `doc`
|
||||||
Contains the documentation server, written in C. It uses the [ctorm](https://github.com/ngn13/ctorm) web
|
|
||||||
framework, which is a framework that I myself wrote. Unlike the frontend application or the API server, it's not
|
Contains the documentation server, written in C. It uses the
|
||||||
accessable by public, the frontend application gets the documentation content from this server and renders it using
|
[ctorm](https://github.com/ngn13/ctorm) web framework, which is a framework that
|
||||||
SSR. The reason I don't use the API for hosting the documentation content is that I want a separate server for hosting
|
I myself wrote. Unlike the frontend application or the API server, it's not
|
||||||
|
accessable by public, the frontend application gets the documentation content
|
||||||
|
from this server and renders it using SSR. The reason I don't use the API for
|
||||||
|
hosting the documentation content is that I want a separate server for hosting
|
||||||
static content, API is only for hosting dynamic stuff.
|
static content, API is only for hosting dynamic stuff.
|
||||||
|
|
||||||
### `admin`
|
### `admin`
|
||||||
The frontend application does not contain an admin interface, I do the administration stuff (such as adding news posts,
|
|
||||||
adding services etc.) using the python script in this directory. This script can be installed on to the PATH by running
|
The frontend application does not contain an admin interface, I do the
|
||||||
the Makefile install script. After installation it can be used by running `admin_script`.
|
administration stuff (such as adding news posts, adding services etc.) using the
|
||||||
|
python script in this directory. This script can be installed on to the PATH by
|
||||||
|
running the Makefile install script. After installation it can be used by
|
||||||
|
running `admin_script`.
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
Easiest way to deploy is to use docker. There is `compose.yml` and a `run.sh` script in the [deploy](deploy/) directory
|
|
||||||
that can be used to startup all the docker containers. Configuration options are passed during build time for the frontend
|
Easiest way to deploy is to use docker. There is `compose.yml` and a `run.sh`
|
||||||
application, and for others it's passed with environment variables.
|
script in the [deploy](deploy/) directory that can be used to startup all the
|
||||||
|
docker containers. Configuration options are passed during build time for the
|
||||||
|
frontend application, and for others it's passed with environment variables.
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
Some nostalgic history/changelog stuff (just for the major version numbers):
|
Some nostalgic history/changelog stuff (just for the major version numbers):
|
||||||
|
|
||||||
- **v0.1 (late 2020 - early 2021)**: First ever version of my website, it was just a simple HTML/CSS page,
|
- **v0.1 (late 2020 - early 2021)**: First ever version of my website, it was
|
||||||
I never published any of the source code and I wiped the local copy on my USB drive in early 2022, I still
|
just a simple HTML/CSS page, I never published any of the source code and I
|
||||||
remember what it looked like though, it looked like I made entire website in microsoft paint... while blindfoled,
|
wiped the local copy on my USB drive in early 2022, I still remember what it
|
||||||
so yeah it was shit.
|
looked like though, it looked like I made entire website in microsoft paint...
|
||||||
|
while blindfoled, so yeah it was shit.
|
||||||
|
|
||||||
- **v1.0 (early 2021 - late 2022)**: This version was actualy hosted on my github.io page, and all the source code
|
- **v1.0 (early 2021 - late 2022)**: This version was actualy hosted on my
|
||||||
was (and still is) avaliable, it was just a simple static site, [here is a screenshot](assets/githubio.png).
|
github.io page, and all the source code was (and still is) avaliable, it was
|
||||||
|
just a simple static site, [here is a screenshot](assets/githubio.png).
|
||||||
|
|
||||||
- **vLOST (late 2022 - early 2023)**: As I learned more JS, I decided to rewrite (and rework) my website with one
|
- **vLOST (late 2022 - early 2023)**: As I learned more JS, I decided to rewrite
|
||||||
of the fancy JS frameworks. I decided to go with Svelte. Not the kit version, at the time svelte did not support SSR.
|
(and rework) my website with one of the fancy JS frameworks. I decided to go
|
||||||
I do not remember writting an API for it so I guess I just updated it everytime I wanted to add content? It was pretty
|
with Svelte. Not the kit version, at the time svelte did not support SSR. I do
|
||||||
much like a static website and was hosted on `ngn13.fun` as at this point I had my own hosting. The source code for
|
not remember writting an API for it so I guess I just updated it everytime I
|
||||||
this website was in a deleted github repository of mine, I looked for a local copy on my old hard drive but I wasn't able
|
wanted to add content? It was pretty much like a static website and was hosted
|
||||||
to find it. I also do not remember how it looked like, sooo this version is pretty much lost :(
|
on `ngn13.fun` as at this point I had my own hosting. The source code for this
|
||||||
|
website was in a deleted github repository of mine, I looked for a local copy
|
||||||
|
on my old hard drive but I wasn't able to find it. I also do not remember how
|
||||||
|
it looked like, sooo this version is pretty much lost :(
|
||||||
|
|
||||||
- **v2.0 (early 2023 - late 2023)**: After I discovered what SSR is, I decided to rewrite and rework my website one more
|
- **v2.0 (early 2023 - late 2023)**: After I discovered what SSR is, I decided
|
||||||
time in NuxtJS. I had really "fun" time using vue stuff. As NuxtJS supported server-side code, this website had its own
|
to rewrite and rework my website one more time in NuxtJS. I had really "fun"
|
||||||
built in API. This website was also hosted on `ngn13.fun`. This also the first version that lives on this git repository.
|
time using vue stuff. As NuxtJS supported server-side code, this website had
|
||||||
|
its own built in API. This website was also hosted on `ngn13.fun`. This also
|
||||||
|
the first version that lives on this git repository.
|
||||||
|
|
||||||
- **v3.0 (2023 august - 2023 november)**: In agust of 2023, I decided to rewrite and rework my website again, this time
|
- **v3.0 (2023 august - 2023 november)**: In agust of 2023, I decided to rewrite
|
||||||
I was going with SvelteKit as I haven't had the greatest experience with NuxtJS. SvelteKit was really fun to work with
|
and rework my website again, this time I was going with SvelteKit as I haven't
|
||||||
and I got my new website done pretty quickly. (I don't wanna brag or something but I really imporeved the CSS/styling
|
had the greatest experience with NuxtJS. SvelteKit was really fun to work with
|
||||||
stuff ya know). I also wrote a new API with Go and Gin. I did not publish the source code for the API, the code lived
|
and I got my new website done pretty quickly. (I don't wanna brag or something
|
||||||
on my local git server until I deleted it when I was done with 6.0. This website was hosted on `ngn13.fun` as well.
|
but I really imporeved the CSS/styling stuff ya know). I also wrote a new API
|
||||||
|
with Go and Gin. I did not publish the source code for the API, the code lived
|
||||||
|
on my local git server until I deleted it when I was done with 6.0. This
|
||||||
|
website was hosted on `ngn13.fun` as well.
|
||||||
|
|
||||||
- **v4.0 (2023 november - 2024 october)**: In this version the frontend was still similar to 3.0, the big changes are in
|
- **v4.0 (2023 november - 2024 october)**: In this version the frontend was
|
||||||
the API. I rewrote the API with Fiber. This version was the first version hosted on `ngn.tf` which is my new domain name.
|
still similar to 3.0, the big changes are in the API. I rewrote the API with
|
||||||
Here is a [picture of the index](assets/4.0_index.png) and the [blog page](assets/4.0_blog.png).
|
Fiber. This version was the first version hosted on `ngn.tf` which is my new
|
||||||
|
domain name. Here is a [picture of the index](assets/4.0_index.png) and the
|
||||||
|
[blog page](assets/4.0_blog.png).
|
||||||
|
|
||||||
- **v5.0 (2024 october - 2025 january)**: This version just had simple frontend UI changes compared to 4.0, at this
|
- **v5.0 (2024 october - 2025 january)**: This version just had simple frontend
|
||||||
point I was thinking about doing a massive rework (which I did with 6.0), however I was working on some other shit at
|
UI changes compared to 4.0, at this point I was thinking about doing a massive
|
||||||
the time, so I just did some small changes with the limited time I had for this project.
|
rework (which I did with 6.0), however I was working on some other shit at the
|
||||||
|
time, so I just did some small changes with the limited time I had for this
|
||||||
|
project.
|
||||||
|
|
||||||
- **v6.0 (2025 january - ...)**: The current major version of my website, frontend had a massive rework, API has been
|
- **v6.0 (2025 january - ...)**: The current major version of my website,
|
||||||
cleaned up and extended to do status checking for the services I host. The `doc` server has been added to the mix
|
frontend had a massive rework, API has been cleaned up and extended to do
|
||||||
so I can host static documentation. The most important thing about this version is that it adds multi-language support,
|
status checking for the services I host. The `doc` server has been added to
|
||||||
so literally everything on the website (including the API and documentation content) is localized for both English
|
the mix so I can host static documentation. The most important thing about
|
||||||
and Turkish, which was something I wanted to do for the longest time ever.
|
this version is that it adds multi-language support, so literally everything
|
||||||
|
on the website (including the API and documentation content) is localized for
|
||||||
Damn it has been 4 years since I wrote that shit HTML page huh? Time flies...
|
both English and Turkish, which was something I wanted to do for the longest
|
||||||
|
time ever.
|
||||||
## Screenshots (from v6.0)
|
|
||||||

|
|
||||||

|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 156 KiB |
Binary file not shown.
Before Width: | Height: | Size: 111 KiB |
Loading…
x
Reference in New Issue
Block a user