support docker (+compose)
This commit is contained in:
@@ -1,15 +1,34 @@
|
|||||||
|
# what is this?
|
||||||
|
|
||||||
to play with cookies
|
to play with cookies
|
||||||
|
|
||||||
this serves a nginx server on port 8443
|
this serves a nginx server on port 8443
|
||||||
|
|
||||||
|
# how to use?
|
||||||
|
|
||||||
|
## set up dns
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
> you want to change your `/etc/hosts` (on \*nix)
|
> you want to change your `/etc/hosts` (on \*nix; requires root)
|
||||||
|
|
||||||
```
|
```
|
||||||
# /etc/hosts
|
# /etc/hosts
|
||||||
127.0.0.1 website.com a.website.com b.website.com sub.a.website.com
|
127.0.0.1 website.com a.website.com b.website.com sub.a.website.com
|
||||||
```
|
```
|
||||||
|
|
||||||
|
the nginx config has these domains hardcoded. change them too if you want
|
||||||
|
|
||||||
|
## set up tls
|
||||||
|
|
||||||
|
run `make setup-tls`
|
||||||
|
|
||||||
|
you don't have `make`? well install it.
|
||||||
|
|
||||||
|
you don't have `openssl`? what insane operating system are you on? get openssl too.
|
||||||
|
|
||||||
|
|
||||||
|
## change the cookie attributes
|
||||||
|
|
||||||
to add attributes, modify the file `cookieattr`
|
to add attributes, modify the file `cookieattr`
|
||||||
```
|
```
|
||||||
# cookieattr
|
# cookieattr
|
||||||
@@ -17,16 +36,31 @@ set $cookie_attr 'Secure; Domain=a.host.com; HttpOnly;';
|
|||||||
```
|
```
|
||||||
note that the `;` at the end is the line terminator for nginx config and is necessary
|
note that the `;` at the end is the line terminator for nginx config and is necessary
|
||||||
|
|
||||||
next, install `just` for your system. take a look at <https://just.systems> if unsure how
|
## start the server
|
||||||
|
|
||||||
get `podman` too while you're at it. you don't have `openssl`? what insane operating system are you on? get openssl too.
|
### with compose
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ docker compose up -d
|
||||||
|
$ docker compose exec cookies nginx -s reload
|
||||||
|
$ # or create a make/just target to do that
|
||||||
|
```
|
||||||
|
|
||||||
|
### with podman
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ just setup-tls
|
|
||||||
$ just container
|
$ just container
|
||||||
$ # now you mess around with cookieattr
|
$ # now you mess around with cookieattr
|
||||||
$ # you look at https://a.website.com https://b.website.com https://sub.a.website.com
|
$ # you look at https://a.website.com https://b.website.com https://sub.a.website.com
|
||||||
$ # you can tell you need to tell your browser you want a taste of danger
|
$ # you can tell you need to tell your browser you want a taste of danger
|
||||||
$ just reload
|
$ just reload
|
||||||
$ # ^ do that when you make changes to server.conf
|
$ # ^ do that when you make changes to config
|
||||||
|
```
|
||||||
|
|
||||||
|
# what if sth doesn't work?
|
||||||
|
|
||||||
|
might be the `:z` label in the `volumes` in `docker-compose.yml`. remove it.
|
||||||
|
e.g.
|
||||||
|
```
|
||||||
|
- ./tls:/etc/nginx/tls:ro
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
services:
|
||||||
|
cookies:
|
||||||
|
image: nginx:alpine
|
||||||
|
volumes:
|
||||||
|
- ./conf.d/:/etc/nginx/conf.d:ro,z
|
||||||
|
- ./tls:/etc/nginx/tls:ro,z
|
||||||
|
- ./www:/srv/www:ro,z
|
||||||
|
publish:
|
||||||
|
- 8443:443
|
||||||
|
|
||||||
Reference in New Issue
Block a user