fix: commit missing files
chore: add favicon
@ -75,7 +75,8 @@ You can specify configuration options either via a config file (default: `config
|
|||||||
| `server.base_path` | `WAKAPI_BASE_PATH` | `/` | Web base path (change when running behind a proxy under a sub-path) |
|
| `server.base_path` | `WAKAPI_BASE_PATH` | `/` | Web base path (change when running behind a proxy under a sub-path) |
|
||||||
| `security.password_salt` | `WAKAPI_PASSWORD_SALT` | - | Pepper to use for password hashing |
|
| `security.password_salt` | `WAKAPI_PASSWORD_SALT` | - | Pepper to use for password hashing |
|
||||||
| `security.insecure_cookies` | `WAKAPI_INSECURE_COOKIES` | `false` | Whether or not to allow cookies over HTTP |
|
| `security.insecure_cookies` | `WAKAPI_INSECURE_COOKIES` | `false` | Whether or not to allow cookies over HTTP |
|
||||||
| `security.cookie_max_age` | `WAKAPI_COOKIE_MAX_AGE ` | `172800` | Lifetime of authentication cookies in seconds or `0` to use [Session](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Define_the_lifetime_of_a_cookie) cookies |
|
| `security.cookie_max_age` | `WAKAPI_COOKIE_MAX_AGE ` | `172800` | Lifetime of authentication cookies in seconds or `0` to use [Session](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Define_the_lifetime_of_a_cookie) cookies
|
||||||
|
|
|
||||||
| `db.host` | `WAKAPI_DB_HOST` | - | Database host |
|
| `db.host` | `WAKAPI_DB_HOST` | - | Database host |
|
||||||
| `db.port` | `WAKAPI_DB_PORT` | - | Database port |
|
| `db.port` | `WAKAPI_DB_PORT` | - | Database port |
|
||||||
| `db.user` | `WAKAPI_DB_USER` | - | Database user |
|
| `db.user` | `WAKAPI_DB_USER` | - | Database user |
|
||||||
|
21
config.mysql.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
env: dev
|
||||||
|
app:
|
||||||
|
custom_languages:
|
||||||
|
jsx: JSX
|
||||||
|
vue: Vue
|
||||||
|
security:
|
||||||
|
password_salt:
|
||||||
|
insecure_cookies: false
|
||||||
|
cookie_max_age: 172800
|
||||||
|
db:
|
||||||
|
host: localhost
|
||||||
|
port: 3306
|
||||||
|
user: wakapi_user
|
||||||
|
password: wakapi
|
||||||
|
name: wakapi_local
|
||||||
|
dialect: mysql
|
||||||
|
max_conn: 2
|
||||||
|
server:
|
||||||
|
port: 3000
|
||||||
|
listen_ipv4: 127.0.0.1
|
||||||
|
base_path: /
|
22
config.postgres.yml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
env: dev
|
||||||
|
app:
|
||||||
|
custom_languages:
|
||||||
|
jsx: JSX
|
||||||
|
vue: Vue
|
||||||
|
abc: Fooscript
|
||||||
|
security:
|
||||||
|
password_salt:
|
||||||
|
insecure_cookies: false
|
||||||
|
cookie_max_age: 172800
|
||||||
|
db:
|
||||||
|
host: localhost
|
||||||
|
port: 5432
|
||||||
|
user: wakapi_user
|
||||||
|
password: wakapi
|
||||||
|
name: wakapi_local
|
||||||
|
dialect: postgres
|
||||||
|
max_conn: 2
|
||||||
|
server:
|
||||||
|
port: 3000
|
||||||
|
listen_ipv4: 127.0.0.1
|
||||||
|
base_path: /
|
27
config.sqlite.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
env: development
|
||||||
|
|
||||||
|
server:
|
||||||
|
listen_ipv4: 127.0.0.1
|
||||||
|
port: 3000
|
||||||
|
base_path: /
|
||||||
|
|
||||||
|
app:
|
||||||
|
cleanup: false # only edit, if you know what you're doing
|
||||||
|
aggregation_time: '02:16' # time at which to run daily aggregation batch jobs
|
||||||
|
custom_languages:
|
||||||
|
vue: Vue
|
||||||
|
jsx: JSX
|
||||||
|
|
||||||
|
db:
|
||||||
|
host: # leave blank when using sqlite3
|
||||||
|
port: # leave blank when using sqlite3
|
||||||
|
user: # leave blank when using sqlite3
|
||||||
|
password: # leave blank when using sqlite3
|
||||||
|
name: wakapi_db.db # database name for mysql / postgres or file path for sqlite (e.g. /tmp/wakapi.db)
|
||||||
|
dialect: sqlite3 # mysql, postgres, sqlite3
|
||||||
|
max_conn: 2
|
||||||
|
|
||||||
|
security:
|
||||||
|
password_salt: # CHANGE !
|
||||||
|
insecure_cookies: false
|
||||||
|
cookie_max_age: 172800
|
BIN
static/assets/images/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
static/assets/images/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
static/assets/images/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
static/assets/images/favicon-16x16.png
Normal file
After Width: | Height: | Size: 457 B |
BIN
static/assets/images/favicon-32x32.png
Normal file
After Width: | Height: | Size: 710 B |
BIN
static/assets/images/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
static/assets/images/screenshot.png
Normal file
After Width: | Height: | Size: 38 KiB |
19
static/assets/site.webmanifest
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"short_name": "",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "assets/images/android-chrome-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "assets/images/android-chrome-512x512.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
@ -2,7 +2,10 @@
|
|||||||
<title>Wakapi – Coding Statistics</title>
|
<title>Wakapi – Coding Statistics</title>
|
||||||
<base href="{{ getBasePath }}/">
|
<base href="{{ getBasePath }}/">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
|
||||||
<link rel="icon" data-emoji="📊" type="image/png">
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/images/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="assets/images/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="assets/images/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="assets/site.webmanifest">
|
||||||
<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Roboto&display=swap" rel="stylesheet">
|
||||||
<link href="https://unpkg.com/tailwindcss@^1.4.6/dist/tailwind.min.css" rel="stylesheet">
|
<link href="https://unpkg.com/tailwindcss@^1.4.6/dist/tailwind.min.css" rel="stylesheet">
|
||||||
<link href="assets/app.css" rel="stylesheet">
|
<link href="assets/app.css" rel="stylesheet">
|
||||||
|
6
views/header.tpl.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<header class="flex justify-between mb-10">
|
||||||
|
<a id="logo-container" class="text-2xl font-semibold text-white inline-block" href="">
|
||||||
|
<span>📊</span>
|
||||||
|
<span>Wakapi</span>
|
||||||
|
</a>
|
||||||
|
</header>
|
46
views/login.tpl.html
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
{{ template "head.tpl.html" . }}
|
||||||
|
|
||||||
|
<body class="bg-gray-800 text-gray-700 p-4 pt-10 flex flex-col min-h-screen max-w-screen-lg mx-auto justify-center">
|
||||||
|
|
||||||
|
{{ template "header.tpl.html" . }}
|
||||||
|
|
||||||
|
<div class="flex items-center justify-center">
|
||||||
|
<h1 class="font-semibold text-xl text-white m-0 border-b-4 border-green-700">Login</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ template "alerts.tpl.html" . }}
|
||||||
|
|
||||||
|
<main class="mt-10 flex-grow flex justify-center w-full">
|
||||||
|
<div class="flex-grow max-w-lg mt-10">
|
||||||
|
<form action="login" method="post">
|
||||||
|
<div class="mb-8">
|
||||||
|
<label class="inline-block text-sm mb-1 text-gray-500" for="username">Username</label>
|
||||||
|
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3"
|
||||||
|
type="text" id="username"
|
||||||
|
name="username" placeholder="Enter your username" minlength="3" required autofocus>
|
||||||
|
</div>
|
||||||
|
<div class="mb-8">
|
||||||
|
<label class="inline-block text-sm mb-1 text-gray-500" for="password">Password</label>
|
||||||
|
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3"
|
||||||
|
type="password" id="password"
|
||||||
|
name="password" placeholder="******" minlength="6" required>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-between">
|
||||||
|
<a href="signup">
|
||||||
|
<button type="button" class="py-1 px-3 rounded border border-green-700 text-white text-sm">Sign up</button>
|
||||||
|
</a>
|
||||||
|
<button type="submit" class="py-1 px-3 rounded bg-green-700 hover:bg-green-800 text-white text-sm">Log in</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
{{ template "footer.tpl.html" . }}
|
||||||
|
|
||||||
|
{{ template "foot.tpl.html" . }}
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|