Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desktop app #202

Merged
merged 11 commits into from
Jun 25, 2024
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,8 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

/public/sw.js
/public/sw.js.map
/public/workbox-*
/public/fallback-*
52 changes: 26 additions & 26 deletions certs/localhost-key.pem
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCmW6ASnKgvfPzG
APp2uNtcrEndvSnJ1rc/vFkmCYUD4112Rv+kPLAGqMV9uCDFyh7GVDf/UMtxr9bz
gYlqxzEzK3ziYAXjNIST76wOtUXAsPQq/stb0pmtXcsKDN7aM+gIvt16skU3ggMo
GjzcDtdOKWEHqW52Wo52gwp0CvA1lee+8OuiDA1vH2GTlODNmRg5qycpTyS+Lktf
fexco8iR8hH4fAZLUP96cij+6kY0TPg65lhm2j0jvXcdyXBGgHpG+QA2LDp1rMO4
pPH9UmycaCivvHPTeFZFkYkTOGgHHCf7uR0YnMS1O8oUnn7fsehhn7UCm2AYlBLO
I7bmTf7ZAgMBAAECggEAEuINnm83zAQk8RjFVVqQU8merNO+/ZEoxcxMVjv4ZEOX
pUhT1kGpPWhE2ote9PSHX73JiWqTXTk3bfaDMaKgnA1QpKV/pZWdgulOn3DGFSRA
4ux/CtIx7XLbDC3/0cbYjL2ViErZ/n38e73WsKfimpWp1OPPjRGkYCFpu1hOgdZu
USYX6Sp05cqXuSx9kAfSVxO7VDBeCRz/YtISUKah23frUo0CZFGOvARoRUlDCswv
8FuD3H+VuPj/3TPogU3E+AMVJIqjzPZRJ9XitlmemGdEtDJueHxmgceUpp6Wq0V7
kJ6NQCps1EisJ5tIyQOW+Jwz5JfEqWTmt8G+kE2SXQKBgQDG6aNwR6iJ5Mz8njwa
ev3owxfJNZWloPR5PzBFwXQWpcTuhQcTNcH64S7HBgNuzzpglkikZzaXDIzydEyr
UvLqNtdb7kGzukJf47vr64nLQUGATNw6nAF/Kjg73iN4Ip+5Hk0JFDWUSYtISSit
W/LNzKe0dx+m6CoxO0nllv+HUwKBgQDWGiY/q+94YcQlk8cloR+7fnz8A8WIj67g
ntM0MReWmFGoefMTdK22dfwaXm/UQtukvFh0x/F74XrkDG7pLmPhAqyQBkNeleav
vfSIhZtylnMeyUAlBNjH0je735dRoYNApPsANHSB2jUe2N3EbWY/2DTLAUHME45S
JqyWbVg3owKBgQCRpwGDtSUnm/+yN1gBd/A3IaxoLLGgr6R0qB175rVP5CC5G3Xb
zjB1ubBcEf4vhNTVZxZYNC/YGVuYKir+BOZVNMUrzuITbh8uQf8YOMgUqnsBLMbS
r+u0p0C4LehBDvFwR0zXihHVvKidzNxZXQwFQIfI8LWfrT8//48T7Ca+ewKBgQCc
uPWIpC4eO8qeCye65s/YqoWI4KXnCe5kJD7MNKdkqEkV/3aspjtGleUd1EUd5nbr
hqdljLq7CNmxN1y0ui2IlzGEF+GWyjncKTtn+A1K+tB4F68pqfuZgcskbk5RBd6T
InFNvBgQuY8q7mqfj8lKMNSsSVZFsYb7oa2yS4ZI6wKBgQCQLl4hgIpQT2FsWB/B
GZg1P3fPZGoyljOVy/haZoWNQi+B6AdEExuVHBvdCZK3wiei/kt5DMdtJtnLLBDN
JpOeXUn2+XhIxGN9vrJsrFOrr6Rk9uSeP0RT/+ys9Om78ssPu10/aoZbsxHeiZeW
pwv0TTnDLbKcfYIJxJ97iqTgbQ==
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8/fJcFm48w6xL
sEGy2YO+9E2Z6htJK6xrZjnNNjGCWgSIAA9ucdXlh2hU1SMwGHMMhMIBlN6cHJLP
giMCcanw8QSZysD0vqAayWX8KllxyDhu/x4CDDy+qlU/kJyb/h+wvdTmTdze4IJb
PEgRSvwfAI2Z+4Z8llH0tF5vumarNgcc3MhCYP+gNmU1LGlNQTmo4xUXNmK9Ykst
swoGtSm/4PBQwpOmK8t0WE/cYYBNZ6C3XRX0eCEfLrodVFIGMg0pCjeDngGKLfMv
dk3GVl/otsMUpCMeAkVC0ErI3iEAjIeyCMsoLPYILOhsAvY8KjB+j/JhJpZejwl4
DqgbONU/AgMBAAECggEAN47n6o5lhdN4GSANkEhFZKNpFLAvqUj/fOsmXt9pmopf
/qMV5j/sw3cVAqtNltv5Jlr4tYJQFtCHkB0Psa48aSpRUey64LgRVQ6Tvpesh7h2
bprs9Wknil2EhhU7FNiV9F058yI8pgCWEcAc54iFqY9+ESBSHtoJ6cgEYxAHEplj
uYfZFBe/zsOaHf9ohrJre+VRntUiHxrwGFzR03qHucdxFC9ns0NYIq+NoQErqzt3
oqZP4WzDzjgEMNLag4+IXjCg/RowUoQa7BfhfsGcViizn9ypTgQV9iBlqdCCopN4
ONNpy00dkFVgjApC8BQI5Wsk5KKPNP0ZTx4APp+yUQKBgQDMEdAZd9rkMKY6INCc
3oqtNSV+msdXs3vlNvjln1OGLqRmt1Os1xHfQF7f8+vt4f+wHJIZpSsM6bF+YTT9
aWdQOGg4V4KWpNYPP/u54d50cbtmEYtJFAJMVNLfJ5yr4OqmIjiCK2WNahK2qv6t
xageCDeqeD8dtxAcs4KMOFAnAwKBgQDtFeXf7f2ru6EqLmigooyH2bMLOrrFJHYT
N7ENCkiJLIbv3bmvoTfoWWWDx2pf8psqYLn/NcDuU3fwfS2cOjk2a171SjOHbatD
vKErp9XgJZFiRDq4QLn/+CMNyicdiyDLUHaBZbZ3/EXRvr9BBG8Vmv3eFv44zMAV
ZgcwDHk2FQKBgGMAGUbhwI2HlH0Kwmn4BKr255O+HwtLBcYznxg27VxhcFxsf+mQ
BRmbrutS+JhVVafolHBgkrwW+4bmPcDay8Y9N0JuIepXWYnYbpTFIRi4vENOK5Zu
YJcLZ6nfG8C+wteKLoPn7cJnPWDlH9zJ0T+QmQDYiTYvQ1/JLoI8J5ZlAoGADVSu
4UF7gv2A2WNUpLufFUBrbdU2jUE4lmoKPYZ3f6cOS0x3VWXGQ/1K1PcQhyaYDPD1
ZGE8YOo2k0Imn2MytlmhND+g2BuVhrCDi3Xbc8gI/bKCbrvM+ZSVPABC5Mle5a+3
ih0S/noj3uBP1rMOH/PgFG3Mi5sPreRXwR7ibeUCgYAAsDA0v8igGWgjGijr/Umk
lw8QvBVO7H+xQMKkAgxhgGrXMdy2ctHm1c1CaU/2GUJKCjt7iLks3FbMkh8DC08E
SkRXe/Po21xVkN72kMnJFRCd6xfTYxWy7+SvIn/hW6NPLaemPrAdCLG/Oh/POoqs
PdeRarxK6Bm41Lj+rErheA==
-----END PRIVATE KEY-----
49 changes: 26 additions & 23 deletions certs/localhost.pem
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEOTCCAqGgAwIBAgIQHIuPOJ4Ky/29RvB/oNYjFDANBgkqhkiG9w0BAQsFADB9
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExKTAnBgNVBAsMIFRIRU9c
Z2lsbGVAdGhlbyAoVGhlbyBHaWxsZXNwaWUpMTAwLgYDVQQDDCdta2NlcnQgVEhF
T1xnaWxsZUB0aGVvIChUaGVvIEdpbGxlc3BpZSkwHhcNMjMwOTA5MjA0MDQ3WhcN
MjUxMjA5MjE0MDQ3WjBUMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2Vy
dGlmaWNhdGUxKTAnBgNVBAsMIFRIRU9cZ2lsbGVAdGhlbyAoVGhlbyBHaWxsZXNw
aWUpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAplugEpyoL3z8xgD6
drjbXKxJ3b0pyda3P7xZJgmFA+Nddkb/pDywBqjFfbggxcoexlQ3/1DLca/W84GJ
ascxMyt84mAF4zSEk++sDrVFwLD0Kv7LW9KZrV3LCgze2jPoCL7derJFN4IDKBo8
3A7XTilhB6ludlqOdoMKdArwNZXnvvDrogwNbx9hk5TgzZkYOasnKU8kvi5LX33s
XKPIkfIR+HwGS1D/enIo/upGNEz4OuZYZto9I713HclwRoB6RvkANiw6dazDuKTx
/VJsnGgor7xz03hWRZGJEzhoBxwn+7kdGJzEtTvKFJ5+37HoYZ+1AptgGJQSziO2
5k3+2QIDAQABo14wXDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUH
AwEwHwYDVR0jBBgwFoAUjhGzo4l6Ivz+mj34ffAbnoGVVzkwFAYDVR0RBA0wC4IJ
bG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4IBgQALFWTQ4uW3VH68a43mQ0SI04Qh
Ef83KOiJ1Xst/PAKMbq/4AQ8k+UHfTs/ub4CHBIfHu6pT7rEAYXVG38w/eKD8lM5
iCqAQc4UPGe82SVqZqEGKtYn5xeSeAxcAygRVQOdtHsSqeh6MifhyKCWOusF9DzI
dIXJ27k9arCQQjWX/sstzKSBA+zmAsYsSZkQeL/zqi+vSjSBqIBAYRzYS4GAJUbH
agiYg3mTybG9QrrPGDuA2Swv+bYmiZNZ3hJgrwMd/bi7gPXlme43ZcWhaCGjz6Gr
pd+BZj9RTcmYnFPtm7wQlAv03r/eIjXRQ3vhe3gUyKFkD5PyPaenfF24DE/eARyF
dERjwckwIUceguWMjdC9AAdBmW/Y6BcCAA+3ECxxUPIbHIy3coZn0WtKEwSTeBum
d8HecNu1QGSL/CHdVgOUeU1BYIlLhe/xfFsqez9R0QG7N1AXpewPPe7Lxln4fqRE
wTXzxgP+cqLbO9/41i0QDoda/i00w7hgKrboIbg=
MIIExzCCAy+gAwIBAgIRAJd3DtWZH47gx195IWiwQWcwDQYJKoZIhvcNAQELBQAw
ga0xHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTFBMD8GA1UECww4TEFQ
VE9QLUxCNjFRUlJJXHJkZGVsQExBUFRPUC1MQjYxUVJSSSAoUmVuYXRvIERlbGwn
T3NzbykxSDBGBgNVBAMMP21rY2VydCBMQVBUT1AtTEI2MVFSUklccmRkZWxATEFQ
VE9QLUxCNjFRUlJJIChSZW5hdG8gRGVsbCdPc3NvKTAeFw0yNDA2MjUxNTUwMTFa
Fw0yNjA5MjUxNTUwMTFaMGwxJzAlBgNVBAoTHm1rY2VydCBkZXZlbG9wbWVudCBj
ZXJ0aWZpY2F0ZTFBMD8GA1UECww4TEFQVE9QLUxCNjFRUlJJXHJkZGVsQExBUFRP
UC1MQjYxUVJSSSAoUmVuYXRvIERlbGwnT3NzbykwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQC8/fJcFm48w6xLsEGy2YO+9E2Z6htJK6xrZjnNNjGCWgSI
AA9ucdXlh2hU1SMwGHMMhMIBlN6cHJLPgiMCcanw8QSZysD0vqAayWX8KllxyDhu
/x4CDDy+qlU/kJyb/h+wvdTmTdze4IJbPEgRSvwfAI2Z+4Z8llH0tF5vumarNgcc
3MhCYP+gNmU1LGlNQTmo4xUXNmK9YkstswoGtSm/4PBQwpOmK8t0WE/cYYBNZ6C3
XRX0eCEfLrodVFIGMg0pCjeDngGKLfMvdk3GVl/otsMUpCMeAkVC0ErI3iEAjIey
CMsoLPYILOhsAvY8KjB+j/JhJpZejwl4DqgbONU/AgMBAAGjgaEwgZ4wDgYDVR0P
AQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFGz0wy5u
D4tXwNY83ZwZFpugXK03MFYGA1UdEQRPME2CC2V4YW1wbGUuY29tgg0qLmV4YW1w
bGUuY29tggxleGFtcGxlLnRlc3SCCWxvY2FsaG9zdIcEfwAAAYcQAAAAAAAAAAAA
AAAAAAAAATANBgkqhkiG9w0BAQsFAAOCAYEA855figRKXfJtdKrJeVNfOg1ZYdyi
nizTaYgS7eezQrU5v7Jkx5JMNwwaxXOCu/JBkJpRMti1TdJ77oeekq2ZJCpej3Hy
bfXUryOY3Ijn4d4AwEMCIugjc20VDNsPiwsMBfnQPZ2kX03xGM0lvHPwtL8aE1wc
1VRsYfeJzdwY2mkk5H+qOKy6kGw0qNPsc3HLh06oH0J3Gti8a3fMM6xlgDXaBURS
qrnjdGPeLm3YWy/3+ae4ZsD54vAzIjS6rzda4ME7c62C/XXlaDh6P7DBsy01EnRi
KXPJ4bVNy9Q1GQNgFJjsFB8xjLlKYkmR9pxpSb2+PcF32T4Ft7sN0Xme1+fONxx9
i+jQ1Fd/l+KXH5DpDJexHHNdjh6fd2SwnfeJh9jojcY6Nt2s7WJBiZQF5hHeDhHu
W74s9E3EoxpEFrui22KCgr8qzioFoMNvP2PJ6/D/QBAKpMCSRKuGWsBZPJbeNx5L
TacfmVgKIh8m/eL9gAs6LlGte0Upi4SpaesT
-----END CERTIFICATE-----
50 changes: 50 additions & 0 deletions components/PwaConfig.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
export default function PwaConfig() {
return (
<>
<meta name="application-name" content="Gearbox" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-title" content="Gearbox" />
<meta name="description" content="Scouting made simple." />
<meta name="format-detection" content="telephone=no" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="msapplication-config" content="/icons/browserconfig.xml" />
<meta name="msapplication-TileColor" content="#2B5797" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="theme-color" content="#000000" />

<link rel="apple-touch-icon" href="/icons/touch-icon-iphone.png" />
<link rel="apple-touch-icon" sizes="152x152" href="/icons/touch-icon-ipad.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/icons/touch-icon-iphone-retina.png" />
<link rel="apple-touch-icon" sizes="167x167" href="/icons/touch-icon-ipad-retina.png" />

<link rel="icon" type="image/png" sizes="220x204" href="/public/favicon.png" />
<link rel="manifest" href="/manifest.json" />
<link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#5bbad5" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" />

<meta name="twitter:card" content="summary" />
<meta name="twitter:url" content="https://4026.org" />
<meta name="twitter:title" content="Gearbox" />
<meta name="twitter:description" content="Best PWA App in the world" />
<meta name="twitter:image" content="https://yourdomain.com/icons/android-chrome-192x192.png" />
<meta name="twitter:creator" content="@4026" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Gearbox" />
<meta property="og:description" content="Best PWA App in the world" />
<meta property="og:site_name" content="PWA App" />
<meta property="og:url" content="https://4026.org" />
<meta property="og:image" content="https://4026.org/public/favicon.png" />

{/* apple splash screen images */}
{/* <link rel='apple-touch-startup-image' href='/images/apple_splash_2048.png' sizes='2048x2732' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_1668.png' sizes='1668x2224' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_1536.png' sizes='1536x2048' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_1125.png' sizes='1125x2436' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_1242.png' sizes='1242x2208' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_750.png' sizes='750x1334' />
<link rel='apple-touch-startup-image' href='/images/apple_splash_640.png' sizes='640x1136' /> */}
</>
);
}
11 changes: 9 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const fs = require("fs");
console.log("Imports complete");

const dev = process.env.NODE_ENV !== "production";
const port = dev ? 3000 : 443;
const port = 443;
const app = next({ dev });
const handle = app.getRequestHandler();

Expand All @@ -31,7 +31,14 @@ app.prepare().then(() => {
try {
const server = createServer(httpsOptions, async (req, res) => {
const parsedUrl = parse(req.url, true);
await handle(req, res, parsedUrl);
const { pathname } = parsedUrl;

if (pathname === '/sw.js' || /^\/(workbox|worker|fallback)-\w+\.js$/.test(pathname)) {
const filePath = join(__dirname, '.next', pathname)
app.serveStatic(req, res, filePath)
} else {
handle(req, res, parsedUrl)
}
}).listen(port, (err) => {
if (err) {
console.log(err);
Expand Down
6 changes: 5 additions & 1 deletion next.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
const withPwa = require("next-pwa")({
dest: "public",
});

/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: false,
Expand All @@ -12,4 +16,4 @@ const nextConfig = {
},
};

module.exports = nextConfig;
module.exports = withPwa(nextConfig);
Loading
Loading