Push to github
Some checks failed
Docker / Push (push) Has been cancelled
|
@ -32,10 +32,10 @@ RUN rm /usr/local/etc/php-fpm.conf \
|
||||||
&& sed -i s/ssl_session_cache/#ssl_session_cache/g /etc/nginx/nginx.conf \
|
&& sed -i s/ssl_session_cache/#ssl_session_cache/g /etc/nginx/nginx.conf \
|
||||||
&& mkdir -p /var/run/php /var/run/nginx
|
&& mkdir -p /var/run/php /var/run/nginx
|
||||||
|
|
||||||
COPY .github/docker/default.conf /etc/nginx/http.d/default.conf
|
COPY .forgejo/docker/default.conf /etc/nginx/http.d/default.conf
|
||||||
COPY .github/docker/www.conf /usr/local/etc/php-fpm.conf
|
COPY .forgejo/docker/www.conf /usr/local/etc/php-fpm.conf
|
||||||
COPY .github/docker/supervisord.conf /etc/supervisord.conf
|
COPY .forgejo/docker/supervisord.conf /etc/supervisord.conf
|
||||||
|
|
||||||
EXPOSE 80 443
|
EXPOSE 80 443
|
||||||
ENTRYPOINT [ "/bin/ash", ".github/docker/entrypoint.sh" ]
|
ENTRYPOINT [ "/bin/ash", ".forgejo/docker/entrypoint.sh" ]
|
||||||
CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]
|
CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]
|
||||||
|
|
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 12 KiB |
|
@ -1,2 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
<browserconfig>
|
||||||
|
<msapplication>
|
||||||
|
<tile>
|
||||||
|
<square150x150logo src="/mstile-150x150.png"/>
|
||||||
|
<TileColor>#da532c</TileColor>
|
||||||
|
</tile>
|
||||||
|
</msapplication>
|
||||||
|
</browserconfig>
|
||||||
|
|
BIN
public/favicons/favicon-48x48.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 15 KiB |
3
public/favicons/favicon.svg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
public/favicons/web-app-manifest-192x192.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
public/favicons/web-app-manifest-512x512.png
Normal file
After Width: | Height: | Size: 74 KiB |
|
@ -1,6 +1,7 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import BoringAvatar, { AvatarProps } from 'boring-avatars';
|
import BoringAvatar, { AvatarProps } from 'boring-avatars';
|
||||||
import { useStoreState } from '@/state/hooks';
|
import { useStoreState } from '@/state/hooks';
|
||||||
|
import crypto from 'crypto';
|
||||||
|
|
||||||
const palette = ['#FFAD08', '#EDD75A', '#73B06F', '#0C8F8F', '#587291'];
|
const palette = ['#FFAD08', '#EDD75A', '#73B06F', '#0C8F8F', '#587291'];
|
||||||
|
|
||||||
|
@ -11,9 +12,9 @@ const _Avatar = ({ variant = 'beam', ...props }: AvatarProps) => (
|
||||||
);
|
);
|
||||||
|
|
||||||
const _UserAvatar = ({ variant = 'beam', ...props }: Omit<Props, 'name'>) => {
|
const _UserAvatar = ({ variant = 'beam', ...props }: Omit<Props, 'name'>) => {
|
||||||
const uuid = useStoreState((state) => state.user.data?.uuid);
|
const avatar = useStoreState((state) => `https://www.gravatar.com/avatar/${crypto.createHash('md5').update(state.user.data!.email).digest('hex')}?s=512`);
|
||||||
|
|
||||||
return <BoringAvatar colors={palette} name={uuid || 'system'} variant={variant} {...props} />;
|
return <img src={avatar} className="user-image" alt="User Image" />;
|
||||||
};
|
};
|
||||||
|
|
||||||
_Avatar.displayName = 'Avatar';
|
_Avatar.displayName = 'Avatar';
|
||||||
|
|
|
@ -29,17 +29,17 @@ const Container = styled.div`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export default forwardRef<HTMLFormElement, Props>(({ title, ...props }, ref) => (
|
export default forwardRef<HTMLFormElement, Props>(({ title, ...props }, ref) => (
|
||||||
<Container>
|
<Container>
|
||||||
{title && <h2 css={tw`text-3xl text-center text-neutral-100 font-medium py-4`}>{title}</h2>}
|
{title && <h2 css={tw`text-3xl text-center text-neutral-100 font-medium py-4`}>{title}</h2>}
|
||||||
<FlashMessageRender css={tw`mb-2 px-1`} />
|
<FlashMessageRender css={tw`mb-2 px-1`} />
|
||||||
<Form {...props} ref={ref}>
|
<Form {...props} ref={ref}>
|
||||||
<div css={tw`md:flex w-full bg-white shadow-lg rounded-lg p-6 md:pl-0 mx-1`}>
|
<div css={tw`md:flex w-full bg-white shadow-lg rounded-lg p-6 md:pl-0 mx-1`}>
|
||||||
<div css={tw`flex-none select-none mb-6 md:mb-0 self-center`}>
|
<div css={tw`flex-none select-none mb-6 md:mb-0 self-center`}>
|
||||||
<img src={'/assets/svgs/logo.png'} css={tw`block w-48 md:w-64 mx-auto`} />
|
<img src={'/assets/svgs/logo.png'} css={tw`block w-36 md:w-48 mx-auto`} />
|
||||||
</div>
|
|
||||||
<div css={tw`flex-1`}>{props.children}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</Form>
|
<div css={tw`flex-1`}>{props.children}</div>
|
||||||
|
</div>
|
||||||
|
</Form>
|
||||||
<p css={tw`text-center text-neutral-500 text-xs mt-4`}>
|
<p css={tw`text-center text-neutral-500 text-xs mt-4`}>
|
||||||
© 2015 - {new Date().getFullYear()}
|
© 2015 - {new Date().getFullYear()}
|
||||||
<a
|
<a
|
||||||
|
|
|
@ -53,7 +53,7 @@ const terminalProps: ITerminalOptions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const TERMINAL_PRELUDE = `\u001b[1m\u001b[38;2;153;0;255m${NookConfig.TERMINAL_PRELUDE} \u001b[0m`;
|
const TERMINAL_PRELUDE = `\u001b[1m\u001b[38;2;255;0;47m${NookConfig.TERMINAL_PRELUDE}\u001b[0m`;
|
||||||
const ref = useRef<HTMLDivElement>(null);
|
const ref = useRef<HTMLDivElement>(null);
|
||||||
const terminal = useMemo(() => new Terminal({ ...terminalProps }), []);
|
const terminal = useMemo(() => new Terminal({ ...terminalProps }), []);
|
||||||
const fitAddon = new FitAddon();
|
const fitAddon = new FitAddon();
|
||||||
|
@ -87,11 +87,12 @@ export default () => {
|
||||||
|
|
||||||
const handleDaemonErrorOutput = (line: string) =>
|
const handleDaemonErrorOutput = (line: string) =>
|
||||||
terminal.writeln(
|
terminal.writeln(
|
||||||
'\u001b[1m\u001b[38;2;153;0;255m' + NookConfig.TERMINAL_PRELUDE + '\u001b[0m' +
|
`\u001b[38;2;153;0;255m${NookConfig.TERMINAL_PRELUDE}\u001b[0m` +
|
||||||
'\u001b[41m' + line.replace(/(?:\r\n|\r|\n)$/im, '') + '\u001b[0m'
|
'\u001b[41m' + line.replace(/(?:\r\n|\r|\n)$/im, '') + '\u001b[0m'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const handlePowerChangeEvent = (state: string) =>
|
const handlePowerChangeEvent = (state: string) =>
|
||||||
terminal.writeln(TERMINAL_PRELUDE + 'Server marked as ' + state + '...\u001b[0m');
|
terminal.writeln(TERMINAL_PRELUDE + 'Server marked as ' + state + '...\u001b[0m');
|
||||||
|
|
||||||
|
|