Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
230f84245d | ||
|
|
bb9925c616 | ||
|
|
aea005baad | ||
|
|
bc301f685a |
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# <img alt="Icon" src="./front/public/banner.png" width="150px">
|
||||
# <img alt="Icon" src="./front/public/banner1-white.png" width="150px">
|
||||
|
||||
Welcome! Meelo is a self-hosted music server and web app. It works similarly to Plex, Jellyfin, Koel and Black Candy, but focuses on flexibility, browsing and listening experiences. Actually, Meelo is designed for music collectors. What does it mean? Scroll down to see our killer features :arrow_heading_down:
|
||||
|
||||
|
||||
@@ -134,7 +134,6 @@ services:
|
||||
volumes:
|
||||
- ${DATA_DIR}:${INTERNAL_DATA_DIR}:ro
|
||||
- transcoder_cache:/cache
|
||||
profiles: ['', 'cpu']
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
|
||||
@@ -121,7 +121,6 @@ services:
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
profiles: ['', 'cpu']
|
||||
mq:
|
||||
image: rabbitmq:4.0-alpine
|
||||
environment:
|
||||
|
||||
@@ -99,7 +99,6 @@ services:
|
||||
volumes:
|
||||
- ${DATA_DIR}:${INTERNAL_DATA_DIR}:ro
|
||||
- transcoder_cache:/cache
|
||||
profiles: ['', 'cpu']
|
||||
db:
|
||||
image: postgres:alpine3.14
|
||||
healthcheck:
|
||||
|
||||
|
Before Width: | Height: | Size: 226 KiB |
|
Before Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 242 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 202 KiB |
|
After Width: | Height: | Size: 215 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 478 KiB After Width: | Height: | Size: 374 KiB |
|
After Width: | Height: | Size: 402 KiB |
|
Before Width: | Height: | Size: 669 KiB |
@@ -76,8 +76,8 @@ const AuthenticationWall = (props: { children: any }) => {
|
||||
}}
|
||||
>
|
||||
<ThemedImage
|
||||
light={"/banner-black.png"}
|
||||
dark={"/banner.png"}
|
||||
light={"/banner1-black.png"}
|
||||
dark={"/banner1-white.png"}
|
||||
alt="title"
|
||||
width={200}
|
||||
height={150}
|
||||
|
||||
@@ -179,8 +179,8 @@ const Player = () => {
|
||||
hls.current?.media?.duration,
|
||||
);
|
||||
player.current!.ontimeupdate = () => {
|
||||
if (!switchTrackIfCrossfade()) {
|
||||
progress.current = player.current!.currentTime;
|
||||
if (!switchTrackIfCrossfade() && player.current) {
|
||||
progress.current = player.current.currentTime;
|
||||
}
|
||||
};
|
||||
player.current!.onended = () => {
|
||||
@@ -192,7 +192,7 @@ const Player = () => {
|
||||
};
|
||||
player.current!.onpause = () => {
|
||||
throwawayAudioPlayer.current?.pause();
|
||||
if (player.current!.ended === false) {
|
||||
if (player.current?.ended === false) {
|
||||
setPlaying(false);
|
||||
}
|
||||
};
|
||||
@@ -375,7 +375,7 @@ const Player = () => {
|
||||
new Notification(currentTrack.track.name, {
|
||||
icon: newIllustrationURL
|
||||
? API.getIllustrationURL(newIllustrationURL)
|
||||
: "/icon.png",
|
||||
: "/icon-white.png",
|
||||
body: currentTrack.artist.name,
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -78,7 +78,7 @@ const ReleaseTrackList = ({
|
||||
const PlayingIcon = () => (
|
||||
<PlayIcon
|
||||
style={{
|
||||
fill: theme.palette.text.disabled,
|
||||
fill: theme.vars.palette.text.disabled,
|
||||
color: "transparent",
|
||||
marginLeft: -4,
|
||||
}}
|
||||
@@ -335,7 +335,7 @@ const ReleaseTrackList = ({
|
||||
>
|
||||
<VideoIcon
|
||||
color={
|
||||
theme.palette.text
|
||||
theme.vars.palette.text
|
||||
.disabled
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -170,16 +170,17 @@ const Drawer = ({
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
padding: 2,
|
||||
height: 100,
|
||||
}}
|
||||
>
|
||||
<Link href="/" style={{ cursor: "pointer" }}>
|
||||
<ThemedImage
|
||||
light={"/banner-black.png"}
|
||||
dark={"/banner.png"}
|
||||
light={"/banner1-black.png"}
|
||||
dark={"/banner1-white.png"}
|
||||
alt="icon"
|
||||
priority
|
||||
width={180}
|
||||
height={75}
|
||||
width={200}
|
||||
height={84}
|
||||
/>
|
||||
</Link>
|
||||
</Box>
|
||||
|
||||
@@ -59,8 +59,8 @@ export default function MyDocument(
|
||||
name="~/theme-color"
|
||||
content={LightTheme.background?.default}
|
||||
/>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" href="/favicon.ico" />
|
||||
<link rel="shortcut icon" href="/favicon-black.ico" />
|
||||
<link rel="apple-touch-icon" href="/favicon-black.ico" />
|
||||
</Head>
|
||||
<body style={{ height: "100lvh" }}>
|
||||
<InitColorSchemeScript defaultMode="system" />
|
||||
|
||||