HTMLhouse
Publish HTML quickly.
HTMLhouse uses ACE editor for modifying HTML and shows a live preview of what you've created in an iframe alongside the source code.
No user signup is required -- authorization to modify an individual published page is saved on the creator's device in local storage as an ID and JWT generated by the server.
It is also available as a Chrome extension and browsable on Android.
Development
Requirements
- Go
- Node.js
- MySQL
Setup
- Clone the repo
- Run
go get -dto get necessary dependencies - Run
make installto install LESS compiler locally and generate the CSS files - Run the queries in
init.sqlto set up the database - Optional. Run
./keys.sh prodto create a new keypair
Running the server
- Run
go run main/main.goin the top level directory, optionally by creating a simple run script
#!/bin/bash
DB_USER=dbuser DB_PASSWORD=pass DB_DB=htmlhouse PRIVATE_KEY=keys/dev PUBLIC_KEY=keys/dev.pub go run main/main.go- Open your browser to http://localhost:8080
Environment Variables
| Variable | What it is | Default value |
|---|---|---|
DB_USER |
Database user | None. Required |
DB_PASSWORD |
Database password | None. Required |
DB_DB |
Database name | None. Required |
DB_HOST |
Database host | localhost |
PRIVATE_KEY |
Generated private key | None. Required |
PUBLIC_KEY |
Generated public key | None. Required |
PORT |
Port to run app on | 8080 |
STATIC_DIR |
Relative dir where static files are stored | static |
ALLOW_PUBLISH |
Allow users to publish posts | true |
AUTO_APPROVE |
Automatically approves public posts | false |
PREVIEWS_HOST |
Fully-qualified URL (without trailing slash) of screenshot server | None. |
ADMIN_PASS |
Password to perform admin functions via API | uhoh |
BROWSE_ITEMS |
Number of items to show on Browse page | 10 |
BLACKLIST_TERMS |
Comma-separated list of terms to prevent a post from being made public | None. |
TWITTER_KEY |
Twitter consumer key | notreal |
TWITTER_SECRET |
Twitter consumer secret | notreal |
TWITTER_TOKEN |
Twitter access token of the posting Twitter account | notreal |
TWITTER_TOKEN_SECRET |
Twitter access token secret of the posting Twitter account | notreal |
Notes
Changing CSS. Run make after all changes to update the stylesheets.
When you don't need to reload the app. When you make changes to any files in static/ you can simply refresh the resource without restarting the app.
When to reload the app. If you change any of the templates in templates/ or any .go file, you'll need to re-run the app.