Add old junk.
This commit is contained in:
commit
807e55eca4
13
LICENSE.md
Normal file
13
LICENSE.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
4
README.md
Normal file
4
README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Vintage Onion Stuff
|
||||
===
|
||||
|
||||
Old stuff from previous editions. Found in the bowels of [hscloud](https://cs.hackerspace.pl/hscloud). Kept as a historical curiosity.
|
||||
52
landing/BUILD.bazel
Normal file
52
landing/BUILD.bazel
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
load("@aspect_bazel_lib//lib:transitions.bzl", "platform_transition_binary")
|
||||
load("@rules_oci//oci:defs.bzl", "oci_image", "oci_push")
|
||||
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
|
||||
load("@rules_go//go:def.bzl", "go_library")
|
||||
load("@rules_go//extras:embed_data.bzl", "go_embed_data")
|
||||
|
||||
go_embed_data(
|
||||
name = "static",
|
||||
srcs = [
|
||||
"cebula2020.jpeg",
|
||||
"hotel-orle.jpg",
|
||||
"index.html",
|
||||
"style/main.css",
|
||||
],
|
||||
package = "static",
|
||||
)
|
||||
|
||||
# keep
|
||||
go_library(
|
||||
name = "static_go",
|
||||
srcs = [":static"],
|
||||
importpath = "code.hackerspace.pl/hscloud/hswaw/cebulacamp/landing/static",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
platform_transition_binary(
|
||||
name = "backend_x86",
|
||||
binary = "//hswaw/cebulacamp/landing/backend",
|
||||
target_platform = "@rules_go//go/toolchain:linux_amd64",
|
||||
)
|
||||
|
||||
pkg_tar(
|
||||
name = "layer_bin",
|
||||
srcs = [":backend_x86"],
|
||||
package_dir = "/hscloud/hswaw/cebulacamp/landing/",
|
||||
)
|
||||
|
||||
oci_image(
|
||||
name = "runtime",
|
||||
base = "@prodimage-bionic-oci",
|
||||
tars = [
|
||||
":layer_bin",
|
||||
],
|
||||
entrypoint = ["/hscloud/hswaw/cebulacamp/landing/backend"],
|
||||
)
|
||||
|
||||
oci_push(
|
||||
name = "push",
|
||||
image = ":runtime",
|
||||
remote_tags = ["1680303245"],
|
||||
repository = "registry.k0.hswaw.net/radex/cebulacamp-landing",
|
||||
)
|
||||
18
landing/backend/BUILD.bazel
Normal file
18
landing/backend/BUILD.bazel
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
load("@rules_go//go:def.bzl", "go_binary", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "backend_lib",
|
||||
srcs = ["main.go"],
|
||||
importpath = "code.hackerspace.pl/hscloud/hswaw/cebulacamp/landing/backend",
|
||||
visibility = ["//visibility:private"],
|
||||
deps = [
|
||||
"//hswaw/cebulacamp/landing:static_go", # keep
|
||||
"@com_github_golang_glog//:glog",
|
||||
],
|
||||
)
|
||||
|
||||
go_binary(
|
||||
name = "backend",
|
||||
embed = [":backend_lib"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
49
landing/backend/main.go
Normal file
49
landing/backend/main.go
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"mime"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"code.hackerspace.pl/hscloud/hswaw/cebulacamp/landing/static"
|
||||
)
|
||||
|
||||
var (
|
||||
flagBind string
|
||||
)
|
||||
|
||||
func init() {
|
||||
flag.Set("logtostderr", "true")
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.StringVar(&flagBind, "bind", "0.0.0.0:8080", "Address at which to serve HTTP requests")
|
||||
flag.Parse()
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
path := r.URL.Path
|
||||
if path == "/" {
|
||||
path = "/index.html"
|
||||
}
|
||||
path = strings.TrimPrefix(path, "/")
|
||||
staticPath := fmt.Sprintf("hswaw/cebulacamp/landing/%s", path)
|
||||
if data, ok := static.Data[staticPath]; ok {
|
||||
parts := strings.Split(path, ".")
|
||||
ext := fmt.Sprintf(".%s", parts[len(parts)-1])
|
||||
t := mime.TypeByExtension(ext)
|
||||
w.Header().Set("Content-Type", t)
|
||||
w.Write(data)
|
||||
} else {
|
||||
http.NotFound(w, r)
|
||||
}
|
||||
})
|
||||
|
||||
glog.Infof("Starting up at %v", flagBind)
|
||||
err := http.ListenAndServe(flagBind, nil)
|
||||
if err != nil {
|
||||
glog.Exit(err)
|
||||
}
|
||||
}
|
||||
BIN
landing/cebula2020.jpeg
Normal file
BIN
landing/cebula2020.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 770 KiB |
BIN
landing/hotel-orle.jpg
Normal file
BIN
landing/hotel-orle.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
70
landing/index.html
Normal file
70
landing/index.html
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Cebulacamp 2021</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" type="text/css" href="style/main.css">
|
||||
<header class="hero">
|
||||
<h1>Kongres Komunikacyjny Cebula 2021</h1>
|
||||
<h2>Testing in <s>production</s> pandemic</h2>
|
||||
<p class="acc0">2021/10/01 - 2021/10/03</p>
|
||||
<p class="acc1">Hotel Orle, Gdańsk</p>
|
||||
<p>
|
||||
Three days of under-organized hacking and talking in a hotel in northern Poland. We might talk about the Polish hacker scene. We might get technical. We might even speak mostly Polish, but we'll do our best to welcome people who don't speak encrypted. We're friendly.
|
||||
</p>
|
||||
<p class="acc2">
|
||||
Tentatively planned. Still arranging details, including hygiene/vaccination/test rules. Stay tuned.
|
||||
</p>
|
||||
</header>
|
||||
<main>
|
||||
<section class="starter">
|
||||
<img src="cebula2020.jpeg">
|
||||
</section>
|
||||
<section>
|
||||
<div class="section-content">
|
||||
<header>
|
||||
<h2>Tickets</h2>
|
||||
<p>
|
||||
If you already have tickets from 2020: they're still valid. We also have some extra tickets for sale on our <a href="https://tickets.hackerspace.pl/cebulacamp/kkc20/1">ticket shop</a> available under September 1st. Get them while they're hot!
|
||||
</p>
|
||||
<p>
|
||||
<b>If you don't have a valid tickets.hackerspace.pl order marked as 'Paid', you <i>do not have a ticket</i>. If you paid the hotel and don't have an order marked as 'Paid', <a href="mailto:cebula@hackerspace.pl">get in touch with us ASAP</a>, or <i>we will not have a room for you.</i></b>
|
||||
</p>
|
||||
<p>
|
||||
An all-inclusive ticket (bed in shared room for two nights, food for three days) is 500 PLN. If you want a solo room, or to share a room with someone in particular, contact <a href="mailto:cebula@hackerspace.pl">cebula@hackerspace.pl</a>.
|
||||
</p>
|
||||
<p>
|
||||
<img class="hotel-pic" src="hotel-orle.jpg">
|
||||
</p>
|
||||
</header>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="section-content">
|
||||
<header>
|
||||
<h2>CFP</h2>
|
||||
<p>
|
||||
Yes, there will be some talks. No, they won't be very formal.
|
||||
</p>
|
||||
<p>
|
||||
Please take part in Cebula Camp! <a href="https://cfp.cebula.camp/kkc-2020/cfp">Submit your talks</a>, or, <a href="https://cfp.cebula.camp/kkc-2020/sneak/">Look at Sneak Peaks</a>.
|
||||
</p>
|
||||
</header>
|
||||
</div>
|
||||
</section>
|
||||
<section>
|
||||
<div class="section-content">
|
||||
<header>
|
||||
<h2>Contact</h2>
|
||||
<p>
|
||||
Reach the organizers at <a href="mailto:cebula@hackerspace.pl">cebula@hackerspace.pl</a>. Reach the hotel (in case of room requests, etc) at <a href="mailto:info@orle.com.pl">info@orle.com.pl</a>, and CC cebula@hackerspace.pl if you so wish.
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://kiwiirc.com/nextclient/irc.libera.chat/cebulacamp">irc: #cebulacamp on Libera.chat</a>
|
||||
</p>
|
||||
<p>
|
||||
Cebula Camp is an inclusive event. Be excellent to each other, or stay home. Harassment and discrimination are not welcome or tolerated, online or AFK. If you're a subject, observer, or third-party to any of these, please, get in touch, write to <a href="mailto:cebula@hackerspace.pl">cebula@hackerspace.pl</a> or <a href="mailto:q3k@q3k.org">q3k personally</a>.
|
||||
</p>
|
||||
</header>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
49
landing/kube/prod.jsonnet
Normal file
49
landing/kube/prod.jsonnet
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
local kube = import "../../../../kube/hscloud.libsonnet";
|
||||
|
||||
{
|
||||
local top = self,
|
||||
local cfg = self.cfg,
|
||||
|
||||
cfg:: {
|
||||
name: 'cebulacamp',
|
||||
namespace: 'cebulacamp',
|
||||
domain: 'cebula.camp',
|
||||
image: 'registry.k0.hswaw.net/q3k/cebulacamp-landing:315532800-bbf56cf7e14df954dcddedfe44c967246f11b72c',
|
||||
},
|
||||
|
||||
local ns = kube.Namespace(cfg.namespace),
|
||||
|
||||
deployment: ns.Contain(kube.Deployment(cfg.name)) {
|
||||
spec+: {
|
||||
template+: {
|
||||
spec+: {
|
||||
containers_: {
|
||||
default: kube.Container("default") {
|
||||
image: cfg.image,
|
||||
command: [
|
||||
"/hscloud/hswaw/cebulacamp/landing/backend",
|
||||
"-logtostderr",
|
||||
],
|
||||
resources: {
|
||||
requests: { cpu: "25m", memory: "64Mi" },
|
||||
limits: { cpu: "500m", memory: "128Mi" },
|
||||
},
|
||||
ports_: {
|
||||
http: { containerPort: 8080 },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
service: ns.Contain(kube.Service(cfg.name)) {
|
||||
target:: top.deployment,
|
||||
},
|
||||
|
||||
ingress: ns.Contain(kube.TLSIngress(cfg.name)) {
|
||||
hosts:: [cfg.domain],
|
||||
target:: top.service,
|
||||
},
|
||||
}
|
||||
1
landing/static/gomod-generated-placeholder.go
Normal file
1
landing/static/gomod-generated-placeholder.go
Normal file
|
|
@ -0,0 +1 @@
|
|||
package static
|
||||
148
landing/style/main.css
Normal file
148
landing/style/main.css
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
.hero {
|
||||
color: rgba(223, 219, 244, 1);;
|
||||
background-color: rgba(0, 0, 0, 1);;
|
||||
text-align: center;
|
||||
padding: 5em;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1281px) {
|
||||
.hero {
|
||||
padding: 1em !important;
|
||||
}
|
||||
main {
|
||||
width: 90% !important;
|
||||
}
|
||||
section {
|
||||
margin: 0 0 1em 0 !important;
|
||||
padding: 0em !important;
|
||||
}
|
||||
.hotel-pic {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
/* TODO: find what's causing weird top belt */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
background-color: rgba(0, 0, 0, 1);;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 60%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* TODO: Maybe some fun with how text is laid */
|
||||
|
||||
section.starter {
|
||||
border: none !important;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
section.starter img {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
section {
|
||||
color: rgba(223, 219, 244, 1);;
|
||||
/* TODO: have some fun with transparency :D */
|
||||
background-color: rgba(0, 0, 0, 1);;
|
||||
padding-bottom: 5em;
|
||||
word-wrap: break-word;
|
||||
padding: 3em;
|
||||
}
|
||||
|
||||
section:nth-child(2) {
|
||||
margin: 0em 1em 0em -2em;
|
||||
}
|
||||
|
||||
section:nth-child(3) {
|
||||
margin: -3em -1em 3em 1em;
|
||||
}
|
||||
|
||||
section:nth-child(4) {
|
||||
margin: -6em -3em 6em 4em;
|
||||
}
|
||||
|
||||
section:nth-child(5) {
|
||||
margin: -9em -5em 9em 7em;
|
||||
}
|
||||
|
||||
section:nth-child(6) {
|
||||
margin: -12em -7em 12em 10em;
|
||||
}
|
||||
|
||||
section:nth-child(7) {
|
||||
margin: -15em -9em 15em 13em;
|
||||
}
|
||||
|
||||
section p {
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
section h2 {
|
||||
display: inline-block;
|
||||
margin: 1em 1em 1em 0em;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
section:nth-child(even) {
|
||||
border: 8px solid rgba(173, 35, 101, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(even) h2 {
|
||||
background-color: rgba(173, 35, 101, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(even) a {
|
||||
color: rgba(173, 35, 101, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(even) a:hover {
|
||||
color: rgba(61, 140, 208, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(odd) {
|
||||
border: 8px solid rgba(61, 140, 208, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(odd) h2 {
|
||||
background-color: rgba(61, 140, 208, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(odd) a {
|
||||
color: rgba(61, 140, 208, 1);;
|
||||
}
|
||||
|
||||
section:nth-child(odd) a:hover {
|
||||
color: rgba(173, 35, 101, 1);;
|
||||
}
|
||||
|
||||
/* testing area */
|
||||
.acc0 {
|
||||
color: rgba(61, 140, 208, 1);;
|
||||
}
|
||||
|
||||
.acc1 {
|
||||
color: rgba(232, 227, 33, 1);;
|
||||
}
|
||||
|
||||
.acc2 {
|
||||
color: rgba(173, 35, 101, 1);;
|
||||
}
|
||||
|
||||
.hotel-pic
|
||||
{
|
||||
width: 50%;
|
||||
display: block;
|
||||
margin: .5em auto;
|
||||
width: 50%;
|
||||
}
|
||||
Loading…
Reference in a new issue