6 Commits

Author SHA1 Message Date
Dome 402f53056c initial css and config changes for login page 2026-05-10 16:55:59 +02:00
Dome 3ad97b8b5e Update Dockerfile 2026-05-10 15:05:00 +02:00
Dome 872d05154c Update Dockerfile 2026-05-10 15:04:35 +02:00
Dome 457231a14d Update Dockerfile 2026-05-10 14:51:57 +02:00
Dome 2ad0fc902b fix workflow 2026-05-10 14:46:17 +02:00
Dome 8464a206dc Create build-image-yml 2026-05-10 14:41:38 +02:00
5 changed files with 67 additions and 30 deletions
+34
View File
@@ -0,0 +1,34 @@
name: Build and Push Masto Image
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate timestamp
id: vars
run: echo "TAG=$(date +%Y%m%d-%H%M)" >> $GITHUB_ENV
- name: Login to Docker Hub
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login \
-u "${{ secrets.DOCKER_USERNAME }}" \
--password-stdin
- name: Build image
run: |
docker build \
-t domoel/masto:latest \
-t domoel/masto:${TAG} \
.
- name: Push image
run: |
docker push domoel/masto:latest
docker push domoel/masto:${TAG}
+12 -8
View File
@@ -1,12 +1,16 @@
### BUILDER IMAGE ###
FROM docker.io/superseriousbusiness/masto-fe-standalone-woodpecker-build:0.1.0 AS builder
# Prepare the build directory, copy
# relevant source + config files over.
WORKDIR /build
USER root
RUN mkdir -p /build/.yarn && chown -R node:node /build
USER node
COPY --chown=node:node app /build/app
COPY --chown=node:node config /build/config
COPY --chown=node:node public /build/public
COPY --chown=node:node \
.browserslistrc \
babel.config.js \
@@ -16,19 +20,19 @@ COPY --chown=node:node \
yarn.lock \
/build/
# Create a production build of the frontend.
RUN yarn && yarn build:production
### RUNTIME IMAGE ###
FROM nginx:alpine AS runtime
# Copy bigger nested stuff.
### RUNTIME IMAGE ###
FROM docker.io/nginx:alpine AS runtime
COPY --from=builder /build/public/packs/js/flavours/glitch /usr/share/nginx/html/packs/js/flavours/glitch
COPY --from=builder /build/public/packs/js/flavours/vanilla /usr/share/nginx/html/packs/js/flavours/vanilla
# Copy remaining files.
COPY --from=builder /build/public /usr/share/nginx/html/
# Set up nginx.
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
@@ -2,8 +2,8 @@
@import 'reset';
:root {
--color-bg: #191b22;
--color-fg: #fff;
--color-bg: #1e1f29;
--color-fg: #f7f7fa;
}
body {
@@ -64,29 +64,29 @@ form {
:focus-visible,
button:focus-visible {
outline: 2px solid #66befe;
outline: 2px solid #bd93f9;
outline-offset: 3px;
}
button {
padding: 7px 10px;
border: 1px solid lighten(#66befe, 7%);
border: 1px solid lighten(#bd93f9, 7%);
border-radius: 4px;
box-sizing: border-box;
color: #2a2b2f;
color: #1e1f29;
font-family: inherit;
font-size: inherit;
font-weight: 500;
text-align: center;
white-space: nowrap;
background-color: #66befe;
background-color: #1e1f29;
&:hover {
background-color: #89caff;
background-color: #bd93f9;
}
&:disabled {
background-color: #9baec8;
background-color: #CEBBED;
cursor: default;
}
}
@@ -95,28 +95,28 @@ input[type='text'] {
display: block;
margin: 0;
padding: 15px;
border: 1px solid lighten(#282c37, 7%);
border: 1px solid lighten(#1e1f29, 7%);
border-radius: 4px;
box-sizing: border-box;
box-shadow: none;
color: #9baec8;
color: #CEBBED;
font-family: inherit;
font-size: inherit;
line-height: 18px;
background: #282c37;
background: #1e1f29;
}
.content {
padding: 15px;
border-radius: 4px;
border: 1px solid lighten(#39404f, 7%);
border: 1px solid lighten(#2f313d, 7%);
color: #fff;
background-color: #39404f;
background-color: #2f313d;
}
.link-footer {
padding-inline: 10px;
color: #97a8b4;
color: var(--color-fg);
font-size: 0.875rem;
a {
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

+7 -8
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<title>Login | Masto-FE (🦥 flavour)</title>
<title>Zeitfresser Mastodon Frontend</title>
<meta content="width=device-width, initial-scale=1" name="viewport">
<link rel="stylesheet" media="all" href="/packs/css/flavours/glitch/login.css" />
<script src="/auth.js"></script>
@@ -12,10 +12,10 @@
<body class="app-body">
<div class="login-container">
<header>
<img alt="a friendly smiling sloth" src="images/mascot.svg" />
<img alt="a friendly smiling sloth" src="images/logo.avif" />
</header>
<main>
<h1>Log into your instance</h1>
<h1>Zeitfresser Mastodon Frontend</h1>
<form method="post" id="login">
<label for="instance">Instance URL</label>
<input type="text" id="instance" value="" class="input instance">
@@ -25,17 +25,16 @@
</form>
<aside class="content">
<p>
<strong>Note:</strong>
this application is completely client-side, meaning everything happens in the browser on your machine.
Zeitfresser Mastodon is a client-sided web frontend to run Mastodon or GoToSocial server backends on your machine
It does not store information anywhere else than your browser's local storage.
</p>
</aside>
</main>
<footer class="link-footer">
<p>
<strong>Masto-FE (🦥 flavour)</strong>
<strong>Zeitfresser Mastodon Frontend</strong>
<span aria-hidden="true"> · </span>
<a href="https://codeberg.org/superseriousbusiness/masto-fe-standalone" rel="noopener noreferrer" target="_blank">
<a href="https://git.ztfr.eu/Dome/Masto" rel="noopener noreferrer" target="_blank">
Source code
</a>
</p>
@@ -43,4 +42,4 @@
</div>
</body>
</html>
</html>