1
0
mirror of https://github.com/schollz/cowyo.git synced 2023-08-10 21:13:00 +03:00
Go to file
Zack Scholl 7aff596123 Added delete
Former-commit-id: 972b7441e91d37c201e445f50aa544102589872a [formerly 48ea3377143a97e69391e3097436cd08212d99d2] [formerly 4597c0cb221f5f483bb5524ad6c3a93bd29a74e2 [formerly 8378ccae9067ba526f2045e33d62c6f3ac50c704 [formerly ad0eb8da64]]]
Former-commit-id: f58befd8d388c12b5d040870d5fdb17fda95f896 [formerly 26de2113502c6a4d3c801b2ac0f8082a26b1a168]
Former-commit-id: 005568fd5e2abe6e1e91b9562fbd1eb455056137
Former-commit-id: 7de3db395a
2016-02-14 08:01:28 -05:00
install Added total time to pages Issue #22 2016-02-11 09:26:02 -05:00
letsencrypt Needs to use fullchain, not cert, for mobile 2016-02-14 00:07:09 -05:00
static Added delete 2016-02-14 08:01:28 -05:00
templates Added delete 2016-02-14 08:01:28 -05:00
.gitignore Initial commit 2016-02-06 08:28:40 -05:00
db.go Added total time to pages Issue #22 2016-02-11 09:26:02 -05:00
LICENSE Initial commit 2016-02-06 08:28:40 -05:00
main.go Added HEAD request for uptime monitors 2016-02-11 10:23:45 -05:00
Makefile Updated Makefile 2016-02-10 14:11:26 -05:00
README.md Update README.md 2016-02-13 23:19:40 -05:00
routes.go Anyone can erase now. 2016-02-14 07:50:38 -05:00
utils.go Added total time to pages Issue #22 2016-02-11 09:26:02 -05:00
websockets.go Updated 2016-02-10 18:37:30 -05:00

Logo

AwwKoala - Demo

A Websocket Wiki and Kind Of A List Application

Version 1.0 Go Report Card Join the chat at https://gitter.im/schollz/AwwKoala

This is a self-contained wiki webserver that makes sharing easy and fast. You can make any page you want, and any page is editable by anyone. Pages load instantly for editing, and have special rendering for whether you want to view as a web page or view as list.

Features

Simplicity

The philosophy here is to just type. To jot a note, simply load the page at / and just start typing. No need to press edit, the browser will already be focused on the text. No need to press save - it will automatically save when you stop writing. The URL at / will redirect to an easy-to-remember name that you can use to reload the page at anytime, anywhere. But, you can also use any URL you want, e.g. /AnythingYouWant.

Viewing

All pages can be rendered into HTML by adding /view. For example, the page /AnythingYouWant is rendered at /AnythingYouWant/view. You can write in HTML or Markdown for page rendering. To quickly link to /view pages, just use [[AnythingYouWnat]]. Math is supported with Katex using $\frac{1}{2}$ for inline equations and $$\frac{1}{2}$$ for regular equations.

Listifying

If you are writing a list and you want to tick off things really easily, just add /list. For example, after editing /grocery, goto /grocery/list. In this page, whatever you click on will be striked through and moved to the end. This is helpful if you write a grocery list and then want to easily delete things from it.

Automatic versioning

All previous versions of all notes are stored and can be accessed by adding ?version=X onto /view or /edit. If you are on the /view or /edit pages the menu below will show the most substantial changes in the history. Note, only the current version can be edited (no branching allowed, yet).

Security

HTTPS support is provided. Also uses a HTML sanitizer to prevent XSS attacks.

Keyboard Shortcuts

Quickly transition between Edit/View/List by using Ctl+Shift+E to Edit, Ctl+Shift+Z to View, and Ctl+Shift+L to Listify.

Admin controls

The Admin can view/delete all the documents by setting the -a YourAdminKey when starting the program. Then the admin has access to the /ls/YourAdminKey to view and delete any of the pages.

Install

First install Go.

Then, if you want to host on your local network just do:

git clone https://github.com/schollz/awwkoala.git
cd awwkoala
make
./awwkoala -p :8001 LOCALIPADDRESS

and then goto the address http://LOCALIPADDRESS:8001/

Production server

I recommend using NGINX as middleware, as it will do caching of the static files for you. There is an example NGINX block in install/. If you want to use SSL instead, follow the instructions in letsencrypt/README.md. To automatically install, on Raspberry Pi / Ubuntu / Debian system use:

git clone https://github.com/schollz/awwkoala.git
cd awwkoala
nano Makefile <--- EDIT this Makefile to include YOUR EXTERNAL ADDRESS
make && sudo make install

Now the program starts and stops with

sudo /etc/init.d/AwwKoala start|stop|restart

Edit your crontab (sudo crontab -e) to start on boot:

@reboot /etc/init.d/AwwKoala start

Usage

$ awwkoala --help
awwkoala: A Websocket Wiki and Kind Of A List Application
run this to start the server and then visit localhost at the port you specify
(see parameters).
Example: 'awwkoala localhost'
Example: 'awwkoala -p :8080 localhost:8080'
Example: 'awwkoala -db /var/lib/awwkoala/db.bolt localhost:8003'
Example: 'awwkoala -p :8080 -crt ssl/server.crt -key ssl/server.key localhost:8080'
Options:
  -a string
        key to access admin priveleges (default no admin priveleges)
  -crt string
        location of ssl crt
  -db string
        location of database file (default "/home/mu/awwkoala/data.db")
  -httptest.serve string
        if non-empty, httptest.NewServer serves on this address and blocks
  -key string
        location of ssl key
  -p string
        port to bind (default ":8003")

If you set the admin flag, -a you can access a list of all the current files by going to /ls/WhateverYouSetTheFlagTo.

Contact

If you'd like help, go ahead and clone and send a pull request. If you find a bug, please submit an issue. Any other comments, questions or anything at all, just tweet me @zack_118

Contributors

Thanks to tscholl2.