Merge branch 'master' into events
This commit is contained in:
commit
bddae00a1e
28
Dockerfile
Normal file
28
Dockerfile
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Dockerfile for the blog.
|
||||
#
|
||||
# Building:
|
||||
#
|
||||
# docker build -t blog .
|
||||
#
|
||||
# Running:
|
||||
#
|
||||
# # listen on localhost:8000 and use /home/user/www as the user root
|
||||
# docker run -p 8000:80 -v /home/user/www:/data/www blog
|
||||
#
|
||||
# Running and Backgrounding:
|
||||
#
|
||||
# # run it with a name to start with
|
||||
# docker run -d --name blog -v /home/user/www:/data/www blog
|
||||
#
|
||||
# # later...
|
||||
# docker start blog
|
||||
FROM golang:1.10
|
||||
|
||||
WORKDIR /go/src/github.com/kirsle/blog
|
||||
COPY . .
|
||||
|
||||
RUN go get -d -v ./...
|
||||
RUN go install -v ./...
|
||||
|
||||
EXPOSE 80
|
||||
CMD ["blog", "-a", ":80", "/data/www"]
|
12
Makefile
12
Makefile
|
@ -2,7 +2,7 @@ SHELL := /bin/bash
|
|||
|
||||
VERSION=$(shell grep -e 'Version' blog.go | head -n 1 | cut -d '"' -f 2)
|
||||
BUILD=$(shell git describe --always)
|
||||
CURDIR=$(shell curdir)
|
||||
CURDIR=$(shell pwd)
|
||||
|
||||
# Inject the build version (commit hash) into the executable.
|
||||
LDFLAGS := -ldflags "-X main.Build=$(BUILD)"
|
||||
|
@ -38,3 +38,13 @@ clean:
|
|||
.PHONY: hardclean
|
||||
hardclean: clean
|
||||
rm -rf root/.private
|
||||
|
||||
# `make docker.build` to build the Docker image
|
||||
.PHONY: docker.build
|
||||
docker.build:
|
||||
docker build -t blog .
|
||||
|
||||
# `make docker.run` to run the docker image
|
||||
.PHONY: docker.run
|
||||
docker.run:
|
||||
docker run --rm --name blog_debug -p 8000:80 -v "$(CURDIR)/user-root:/data/www:z" blog
|
||||
|
|
38
README.md
38
README.md
|
@ -4,6 +4,8 @@ This is a web blog and personal homepage engine written in Go. It includes a
|
|||
full-featured web blog (with tags, archive views, etc.) and can serve static
|
||||
web assets, Go HTML templates and Markdown pages.
|
||||
|
||||
# Features
|
||||
|
||||
## Zero Configuration
|
||||
|
||||
Blog is designed to be extremely easy to run: just give it a path to your
|
||||
|
@ -16,6 +18,8 @@ blog $HOME/www
|
|||
See `blog -h` for command line arguments, for example to make it listen on a
|
||||
different port number.
|
||||
|
||||
The blog database is kept on disk as JSON files under the document root.
|
||||
|
||||
## Dual Template System
|
||||
|
||||
Whenever a web request is handled by the Blog program, it checks your
|
||||
|
@ -68,6 +72,40 @@ make run
|
|||
./go-reload cmd/blog/main.go [options] [/path/to/document/root]
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
This app includes a Dockerfile. Type `make docker.build` to build the
|
||||
Docker image.
|
||||
|
||||
The Docker container uses the user document root at `/data/www`
|
||||
|
||||
```bash
|
||||
docker build -t blog .
|
||||
docker run --rm --name blog_debug -p 8000:80 -v $(CURDIR)/user-root:/data/www blog
|
||||
```
|
||||
|
||||
### Quick Start
|
||||
|
||||
```bash
|
||||
make docker.build
|
||||
make docker.run
|
||||
```
|
||||
|
||||
### Docker Image
|
||||
|
||||
* Exposes port 80 for the web server
|
||||
* User document root is mounted at `/data/www`
|
||||
|
||||
So to run the Docker image and have it listen on `localhost:8000` on the
|
||||
host and bind the user document root to `/home/user/www`:
|
||||
|
||||
```bash
|
||||
docker run -p 8000:80 -v /home/user/www:/data/www blog
|
||||
```
|
||||
|
||||
You may also run `make docker.run` to run the Docker image on port 8000 using
|
||||
the `./user-root` directory
|
||||
|
||||
## Recommendation: Redis
|
||||
|
||||
It is recommended to use the [Redis](https://redis.io) caching server in
|
||||
|
|
|
@ -38,5 +38,11 @@ func (c Contact) Validate() error {
|
|||
if len(c.Message) == 0 {
|
||||
return errors.New("message is required")
|
||||
}
|
||||
|
||||
// Spam bot traps.
|
||||
if c.Trap1 != "" || c.Trap2 != "http://" {
|
||||
return errors.New("message can't be delivered")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user