Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rostislavjadavan/mdwiki
Golang Markdown Wiki
https://github.com/rostislavjadavan/mdwiki
Last synced: about 2 months ago
JSON representation
Golang Markdown Wiki
- Host: GitHub
- URL: https://github.com/rostislavjadavan/mdwiki
- Owner: rostislavjadavan
- Created: 2021-03-21T17:04:42.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-07-05T07:40:21.000Z (over 3 years ago)
- Last Synced: 2024-10-12T01:32:35.879Z (2 months ago)
- Language: Go
- Size: 1.06 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![](logo/mdwiki_logo.png)
# mdwiki
## Golang Markdown Wiki
- super simple 😊
- one binary + config file
- no user accounts
- pages are stored as plain markdown files
- page versioning
- github theme (thanks to https://github.com/sindresorhus/github-markdown-css)
- Echo used as underlying http framework (https://echo.labstack.com/)
- using golang 1.16 (because of embed feature)
- inspired by go-bwiki## Screenshots
#### Homepage
![](screenshots/homepage.png)#### Editor
![](screenshots/edit_page.png)#### Page versions
Every update will create new version of the page.![](screenshots/page_versions.png)
You can then view and restore any version you want.
![](screenshots/page_version.png)
#### Delete page
Deleted pages are moved to the trash. You can view them or restore them if you need.![](screenshots/page_in_trash.png)
_screenshots made using:_ https://www.screely.com
## How to build
```
go build .
```## Configuration
Application loads `config.yml` on start up.```
host: localhost
port: 8080
storage: .storage
```- `host` & `port` - web server configuration
- `storage` is directory where pages going to be stored## Running as `systemd` service
### Service file example
```
[Unit]
Description=mdwiki
After=network.target
Wants=network-online.target[Service]
Restart=always
Type=simple
WorkingDirectory=/opt
ExecStart=/opt/mdwiki[Install]
WantedBy=multi-user.target
```- update `ExecStart` and `WorkingDirectory` based on installation path
- working directory needs to be set because `mdwiki`
expects `config.yml` to be in the same directory as executable
- place file in `/etc/systemd/system/mdwiki.service`### Running service
- start service: `systemctl start mdwiki`
- stop service: `systemctl stop mdwiki`
- service status: `systemctl status mdwiki`
- enable service: `systemctl enable mdwiki` (`enable` will hook the specified unit into relevant places, so that it will automatically start on boot)
## Logo
Made using https://excalidraw.com