[release] v0.10.0-unstable13

This commit is contained in:
Yann Stepienik 2023-09-05 20:06:20 +01:00
parent 07e7f634b7
commit a57dbc806b
8 changed files with 1670 additions and 1270 deletions

View file

@ -153,6 +153,36 @@ function list() {
],
"all": {
"cosmos-cloud": [
{
"name": "Audiobookshelf",
"description": "Audiobookshelf is a self-hosted audiobook and podcast server.",
"url": "",
"longDescription": "<p>Audiobookshelf is an open-source, self-hosted, audiobook and podcast server. It features an Android and iOS app for streaming your library, multi-user support, storing progress per user, and syncing across devices.</p><p>It also includes various audiobook management services like metadata fetching, chapter editing tools, and media merging.</p>",
"tags": [
"e-book",
"library",
"audiobook",
"open-source",
"management",
"audiobookshelf",
"docker",
"linux",
"ios",
"android"
],
"repository": "https://github.com/advplyr/audiobookshelf",
"image": "https://hub.docker.com/r/advplyr/audiobookshelf",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Audiobookshelf/screenshots/1.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Audiobookshelf/screenshots/2.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Audiobookshelf/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Audiobookshelf/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Bazarr",
"description": "Bazarr is an automated subtitle download application designed to complement Sonarr and Radarr. It simplifies the process of finding and downloading subtitles in various languages. Bazarr supports Windows, Linux, MacOS and provides a mobile-friendly web interface. If you're using Sonarr and Radarr, Bazarr can enhance your media management experience.",
@ -350,6 +380,29 @@ function list() {
"arm64"
]
},
{
"name": "Dozzle",
"description": "Dozzle is a real-time log viewer for docker containers.",
"url": "",
"longDescription": "<p>Dozzle is a small lightweight application with a web based interface to monitor Docker logs. It doesnt store any log files. It is for live monitoring of your container logs only.</p>",
"tags": [
"dozzle",
"open-source",
"self-hosted",
"log viewer"
],
"repository": "https://github.com/amir20/dozzle",
"image": "https://hub.docker.com/r/amir20/dozzle",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Dozzle/screenshots/1.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Dozzle/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Dozzle/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Duplicati",
"description": "Duplicati is an open-source backup software that creates, encrypts, and stores backups of your files. It offers AES-256 encryption, incremental backups, scheduling, automated backups, and backup verification. Duplicati is compatible with Windows, Linux, MacOS, and Docker.",
@ -417,6 +470,39 @@ function list() {
"arm64"
]
},
{
"name": "Filebrowser",
"description": "Filebrowser is an open-source, self-hosted web application for managing files within your server. It offers features like custom commands, user and permissions management, shareable links, built-in text editor, and media file previews. Filebrowser can be run on any platform that supports Go, including various Linux distributions, Windows, MacOS, and Docker.",
"url": "",
"longDescription": "<p>Filebrowser is an open-source, self-hosted web application for managing files within your server's file system. The application provides a user-friendly interface, making it simple to navigate, upload, download, and manage your files.</p><p>Key features of Filebrowser include support for custom commands, user and permissions management, shareable links, and a built-in text editor. It also supports various media file previews, including video and image file formats.</p><p>Filebrowser is designed to run on any platform that supports Go, including various Linux distributions, Windows, and MacOS. Additionally, it can be easily deployed using Docker.</p>",
"tags": [
"filebrowser",
"open-source",
"self-hosted",
"file management",
"custom commands",
"permissions management",
"shareable links",
"text editor",
"media previews",
"go",
"linux",
"windows",
"macos",
"docker"
],
"repository": "https://github.com/filebrowser/filebrowser",
"image": "https://hub.docker.com/r/filebrowser/filebrowser",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Filebrowser/screenshots/1.gif"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Filebrowser/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Filebrowser/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "FreshRSS",
"description": "FreshRSS is an open-source, self-hosted RSS feed aggregator that is lightweight and easy to use. Features include a responsive design, import/export OPML files, multiple themes, filters, categories, multi-user support, and extensibility with plugins. FreshRSS is compatible with Windows, Linux, MacOS, and Docker.",
@ -545,6 +631,28 @@ function list() {
"arm64"
]
},
{
"name": "Handbrake",
"description": "HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs.",
"url": "",
"longDescription": "<p>This project implements a Docker container for <a href=https://handbrake.fr/ target=_blank>HandBrake</a>.</p><p>The GUI of the application is accessed through a modern web browser (no installation or configuration needed on the client side) or via any VNC client.</p><p>A fully automated mode is also available: drop files into a watch folder and let HandBrake process them without any user interaction.</p><p>Full documentation is available at <a href=https://github.com/jlesage/docker-handbrake target=_blank>https://github.com/jlesage/docker-handbrake</a>.</p>",
"tags": [
"media",
"video",
"conversion"
],
"repository": "https://github.com/jlesage/docker-handbrake",
"image": "https://hub.docker.com/r/jlesage/handbrake",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Handbrake/screenshots/1.jpg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Handbrake/screenshots/2.jpg"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Handbrake/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Handbrake/cosmos-compose.json",
"supported_architectures": [
"amd64"
]
},
{
"name": "Heimdall",
"description": "Heimdall is an open-source, self-hosted dashboard software that provides a central hub for web-based applications and services. Features include a built-in application library, custom themes, multi-user support, and compatibility with desktop and mobile browsers. Heimdall is compatible with Windows, Linux, MacOS, and Docker.",
@ -579,6 +687,39 @@ function list() {
"arm64"
]
},
{
"name": "Homarr",
"description": "Homarr is an open-source, self-hosted dashboard software that provides a central hub for web-based applications and services. Features include a built-in application library, custom themes, multi-user support, and compatibility with desktop and mobile browsers. Homarr is compatible with Windows, Linux, MacOS, and Docker.",
"url": "",
"longDescription": "<p>Homarr is an open-source, self-hosted dashboard software that allows you to organize and access your web-based applications and services all in one place. It's designed to provide a central hub to simplify your web environment.</p><p>Key features of Homarr include the ability to add applications via a built-in library or by creating custom application definitions, custom themes, and the capacity to run on a desktop or mobile browser. It supports multiple users and each user can have their own personalized set of applications.</p><p>Homarr is compatible with various platforms, including Windows, Linux, MacOS, and it supports Docker, making it a highly versatile tool for various environments.</p>",
"tags": [
"dashboard",
"home",
"icons",
"open-source",
"self-hosted",
"web-based applications",
"services",
"central hub",
"multi-user",
"windows",
"linux",
"macos",
"docker"
],
"repository": "https://github.com/ajnart/homarr",
"image": "https://hub.docker.com/r/homarr",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Homarr/screenshots/1.jpg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Homarr/screenshots/2.webp"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Homarr/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Homarr/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Home Assistant",
"description": "Home Assistant is an open-source home automation platform that focuses on privacy and local control. It allows you to control all your devices from a single interface, integrating with a large number of devices and services. Home Assistant offers advanced automation capabilities, running perfectly on a Raspberry Pi or a local server. Start using Home Assistant today for a comprehensive home automation solution.",
@ -611,6 +752,34 @@ function list() {
"arm64"
]
},
{
"name": "Homebox",
"description": "Homebox is the inventory and organization system built for the Home User.",
"url": "",
"longDescription": "<p>Homebox is the inventory and organization system built for the Home User! With a focus on simplicity and ease of use, Homebox is the perfect solution for your home inventory, organization, and management needs.</p>",
"tags": [
"home",
"homebox",
"organization",
"inventory",
"management",
"docker",
"linux"
],
"repository": "https://github.com/hay-kot/homebox",
"image": "https://ghcr.io/hay-kot/homebox:latest",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Homebox/screenshots/1.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Homebox/screenshots/2.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Homebox/screenshots/3.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Homebox/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Homebox/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Immich",
"description": "Immich - High performance self-hosted photo and video backup solution",
@ -837,6 +1006,28 @@ function list() {
"arm64"
]
},
{
"name": "MKVToolNix",
"description": "MKVToolNix is a set of tools to create, alter and inspect Matroska files.",
"url": "",
"longDescription": "<p>This project implements a Docker container for MKVToolNix.</p><p>The GUI of the application is accessed through a modern web browser (no installation or configuration needed on the client side) or via any VNC client.</p>",
"tags": [
"media",
"video",
"conversion"
],
"repository": "https://github.com/jlesage/docker-mkvtoolnix",
"image": "https://hub.docker.com/r/jlesage/mkvtoolnix",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/MKVToolNix/screenshots/1.jpeg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/MKVToolNix/screenshots/2.jpeg"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/MKVToolNix/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/MKVToolNix/cosmos-compose.json",
"supported_architectures": [
"amd64"
]
},
{
"name": "Mastodon",
"description": "Mastodon is a free and open-source self-hosted social networking service. It features decentralization, ability to build your own community, per-post privacy settings, anti-abuse tools, and supports multimedia attachments. Mastodon can be run on any platform that supports Ruby, Node.js, and PostgreSQL, including various Linux distributions and Docker.",
@ -871,6 +1062,69 @@ function list() {
"arm64"
]
},
{
"name": "MeTube",
"description": "youtube-dl web UI",
"url": "",
"longDescription": "<p>Web GUI for youtube-dl (using the yt-dlp fork) with playlist support. Allows you to download videos from YouTube and dozens of other sites.</p>",
"tags": [
"youtube",
"youtube-dl",
"download",
"videos",
"music",
"media"
],
"repository": "https://github.com/alexta69/metube",
"image": "https://github.com/alexta69/metube/pkgs/container/metube",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/MeTube/screenshots/1.gif"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/MeTube/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/MeTube/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Minecraft",
"description": "Minecraft is a sandbox video game developed by Mojang Studios that allows players to explore, interact with, and modify a dynamically-generated map made of blocks. Players can build structures, craft items, and interact with the game world in a variety of ways. The game supports multiple gameplay styles and modes, and is available on a wide range of platforms.",
"url": "",
"longDescription": "<p>Minecraft is a highly popular and critically acclaimed sandbox video game developed by Mojang Studios. It allows players to explore a blocky, procedurally generated 3D world with virtually infinite terrain, and may discover and extract raw materials, craft tools and items, build structures, and interact with the game's various entities.</p><p>Gameplay involves players interacting with the game world by placing and breaking various types of blocks in a three-dimensional environment. In this environment, players can build creative structures, creations, and artwork on multiplayer servers and singleplayer worlds across multiple game modes. Minecraft supports a wide range of gameplay styles, including survival mode, creative mode, adventure mode, and spectator mode.</p><p>Minecraft is available on multiple platforms, including Windows, MacOS, Linux, and various consoles and mobile devices.</p>",
"tags": [
"game servers",
"mojang",
"sandbox",
"game",
"procedurally generated",
"3D",
"multiplayer",
"singleplayer",
"survival",
"creative",
"adventure",
"spectator",
"windows",
"macos",
"linux",
"console",
"mobile"
],
"repository": "https://www.minecraft.net/",
"image": "https://www.minecraft.net/en-us/about-minecraft",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Minecraft-Server/screenshots/1.webp"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Minecraft-Server/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Minecraft-Server/cosmos-compose.json",
"supported_architectures": [
"x86",
"amd64",
"arm",
"arm64"
]
},
{
"name": "NZBGet",
"description": "NZBGet is a high-performance Usenet downloader that uses NZB files to fetch content. It is designed to use minimal system resources while offering features such as a web-interface, API, automatic post-processing, and RSS feed support. NZBGet works well on various platforms including low powered devices. Start using NZBGet for your Usenet downloads today!",
@ -995,6 +1249,70 @@ function list() {
"arm64"
]
},
{
"name": "Overseerr",
"description": "Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.",
"url": "",
"longDescription": "<p>Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex.</p><p>Overseerr helps you find media you want to watch. With inline recommendations and suggestions, you will find yourself deeper and deeper in a rabbit hole of content you never knew you just had to have.</p><p>Overseerr presents you and your users with a request interface that is incredibly easy to understand and use. Users can select the exact seasons they want to watch. Advanced users can use the “Advanced Requests” options to change destination folders and quality profiles.</p><p>Overseerr aims to make you and your user's lives more effortless than ever before.</p>",
"tags": [
"media",
"request",
"library",
"open-source",
"self-hosted",
"web application",
"plex",
"request system",
"media content",
"windows",
"linux",
"macos",
"docker",
"radarr",
"sonarr"
],
"repository": "https://github.com/sct/overseerr",
"image": "https://hub.docker.com/r/linuxserver/overseerr",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Overseerr/screenshots/1.jpg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Overseerr/screenshots/2.jpg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Overseerr/screenshots/3.jpg"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Overseerr/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Overseerr/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Paperless-ngx",
"description": "Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper.",
"url": "",
"longDescription": "<p>Paperless-ngx is a community-supported open-source document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper.</p><p>This version of Paperless-ngx is configured using PostgreSQL as the database server, as well as Apache, Tika, and Gotenberg servers to provide support for consuming Office documents (Word, Excel, Power Point and their LibreOffice counterparts.</p>",
"tags": [
"document",
"management",
"organization",
"archive",
"collection",
"web interface",
"paper",
"docker"
],
"repository": "https://github.com/paperless-ngx/paperless-ngx",
"image": "https://ghcr.io/paperless-ngx/paperless-ngx",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Paperless-ngx/screenshots/1.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Paperless-ngx/screenshots/2.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Paperless-ngx/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Paperless-ngx/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "PhotoPrism",
"description": "PhotoPrism is an open-source personal photo management tool that uses smart search, automated tagging, and geolocation to help organize your photos. It supports various image formats, generates thumbnails, and converts RAW images. PhotoPrism works across various platforms and offers a private, self-hosted solution for managing your photos. Start using PhotoPrism today for your photo management needs.",
@ -1153,6 +1471,45 @@ function list() {
"arm64"
]
},
{
"name": "Ryot",
"description": "A self hosted platform for tracking various facets of your life - media, fitness etc.",
"url": "",
"longDescription": "<p>Ryot is a self hosted platform for tracking various facets of your life - media, fitness etc. Imagine you have a special notebook where you can write down all the media you have consumed, like books you've read, shows you have watched, video games you have played or workouts you have done. Now, imagine that instead of a physical notebook, you have a special tool on your computer or phone that lets you keep track of all these digitally.</p>",
"tags": [
"tracker",
"media",
"fitness",
"open-source",
"collection",
"docker",
"windows",
"linux",
"macos",
"web interface",
"metadata",
"episode tracking",
"movie tracking",
"audiobook tracking",
"reading tracking",
"fitness tracking",
"integrations",
"ryot"
],
"repository": "https://github.com/IgnisDa/ryot",
"image": "https://ghcr.io/ignisda/ryot",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Ryot/screenshots/1.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Ryot/screenshots/2.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Ryot/screenshots/3.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Ryot/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Ryot/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Sonarr",
"description": "Sonarr is an automated TV show manager that can search, download, and manage your TV series. It offers features like automatic quality upgrades, episode tracking, and metadata fetching. Sonarr works across various platforms including Windows, Linux, MacOS, and has a mobile-friendly web interface. Start using Sonarr now to automate your TV show management process.",
@ -1250,6 +1607,44 @@ function list() {
"arm64"
]
},
{
"name": "Unmanic",
"description": "Unmanic is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.",
"url": "",
"longDescription": "<p>Unmanic is a simple tool for optimising your file library. You can use it to convert your files into a single, uniform format, manage file movements based on timestamps, or execute custom commands against a file based on its file size.</p><p>Simply configure Unmanic pointing it at your library and let it automatically manage that library for you.</p><p>Unmanic provides you with the following main functions:</p><ul><li>A scheduler built in to scan your whole library for files that do not conform to your configured file presets. Files found requiring processing are then queued.</li><li>A file/directory monitor. When a file is modified, or a new file is added in your library, Unmanic is able to again test that against your configured file presets. Like the first function, if this file requires processing, it is added to a queue for processing.</li><li>A handler to manage running multiple file manipulation tasks at a time.</li><li>A Web UI to easily configure, manage and monitor the progress of your library optimisation.</li></ul>",
"tags": [
"media",
"server",
"tv",
"videos",
"web",
"browser",
"media browser",
"media server",
"media streaming",
"media player",
"media center",
"media management",
"media organizer",
"media collection",
"media library",
"media manager"
],
"repository": "https://github.com/Unmanic/unmanic",
"image": "https://hub.docker.com/r/josh5/unmanic",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Unmanic/screenshots/1.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Unmanic/screenshots/2.png",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Unmanic/screenshots/3.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Unmanic/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Unmanic/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm7",
"arm64"
]
},
{
"name": "Uptime Kuma",
"description": "Uptime Kuma is an open-source, self-hosted monitoring tool for tracking the uptime of online services. It offers status checks for various services, detailed statistics with charts, and multiple notification methods. Uptime Kuma is compatible with Windows, Linux, MacOS, and Docker.",
@ -1283,6 +1678,58 @@ function list() {
"arm64"
]
},
{
"name": "Van_DAM",
"description": "A self-hosted digital asset manager for 3d print files",
"url": "",
"longDescription": "<p>VanDAM is a Digital Asset Manager (DAM), specifically designed for 3D print files. Create a library pointing at your files on disk, and it will scan for models and parts. It assumes that any folders containing STL or OBJ files are models, and the files within them are parts. You can then view the files easily through your browser!</p>",
"tags": [
"3d models",
"3d printing"
],
"repository": "https://github.com/Floppy/van_dam",
"image": "ghcr.io/floppy/van_dam",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Van_DAM/screenshots/1.jpg",
"https://azukaar.github.io/cosmos-servapps-official/servapps/Van_DAM/screenshots/2.jpg"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Van_DAM/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Van_DAM/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "Vaultwarden",
"description": "Vaultwarden is an open-source, self-hosted password management server compatible with Bitwarden apps. Written in Rust, it provides a secure way to store and synchronize sensitive data across devices with lightweight and low resource usage. Vaultwarden supports various platforms, including Linux, Windows, MacOS, and Docker.",
"url": "",
"longDescription": "<p>Vaultwarden is an open-source password management server that is compatible with Bitwarden apps. It provides a secure and free self-hosted solution to store and synchronize sensitive data across multiple devices, with the ability to share data across organizations, users, and teams.</p><p>Written in Rust, Vaultwarden is designed for lightweight and low resource usage. It allows you to store all kinds of sensitive information, including passwords, credit card details, and secure notes, which can be accessed through Bitwarden's web, mobile, or browser extension apps.</p><p>Vaultwarden supports various platforms, including Linux, Windows, MacOS, and can be deployed easily using Docker.</p>",
"tags": [
"productivity",
"password-manager",
"password manager",
"bitwarden",
"rust",
"sensitive data",
"synchronization",
"linux",
"windows",
"macos",
"docker"
],
"repository": "https://github.com/dani-garcia/vaultwarden",
"image": "https://hub.docker.com/r/vaultwarden/server",
"screenshots": [
"https://azukaar.github.io/cosmos-servapps-official/servapps/Vaultwarden/screenshots/1.png"
],
"icon": "https://azukaar.github.io/cosmos-servapps-official/servapps/Vaultwarden/icon.png",
"compose": "https://azukaar.github.io/cosmos-servapps-official/servapps/Vaultwarden/cosmos-compose.json",
"supported_architectures": [
"amd64",
"arm64"
]
},
{
"name": "WordPress",
"description": "WordPress is a free, open-source content management system based on PHP and MySQL. Known for its flexibility and ease-of-use, it supports a range of website types with thousands of plugins and themes. WordPress features a robust administrative dashboard for website creation, modification, and management. It is widely supported across various hosting platforms.",
@ -1315,7 +1762,7 @@ function list() {
}
},
"status": "OK"
})
});
});
}

View file

@ -72,7 +72,7 @@ const AddDeviceModal = ({ users, config, isAdmin, refreshConfig, devices }) => {
return API.constellation.addDevice(values).then(({data}) => {
setIsDone(data);
refreshConfig();
renderCanvas(data);
renderCanvas(data.Config);
}).catch((err) => {
setErrors(err.response.data);
});
@ -92,24 +92,24 @@ const AddDeviceModal = ({ users, config, isAdmin, refreshConfig, devices }) => {
</p>
<Stack spacing={2} direction={"column"}>
<CosmosFormDivider title={"Cosmos Client (QR Code)"} />
<CosmosFormDivider title={"QR Code"} />
<div style={{textAlign: 'center'}}>
<canvas style={{borderRadius: '15px'}} ref={canvasRef} />
</div>
<CosmosFormDivider title={"Cosmos Client (File)"} />
{/* <CosmosFormDivider title={"Cosmos Client (File)"} />
<DownloadFile
filename={isDone.DeviceName + `.constellation`}
content={JSON.stringify(isDone, null, 2)}
label={"Download " + isDone.DeviceName + `.constellation`}
/>
<CosmosFormDivider title={"Nebula Client"} />
/> */}
<CosmosFormDivider title={"File"} />
<DownloadFile
filename={`config.yml`}
filename={`constellation.yml`}
content={isDone.Config}
label={"Download config.yml"}
label={"Download constellation.yml"}
/>
<DownloadFile
{/* <DownloadFile
filename={isDone.DeviceName + `.key`}
content={isDone.PublicKey}
label={"Download " + isDone.DeviceName + `.key`}
@ -123,7 +123,7 @@ const AddDeviceModal = ({ users, config, isAdmin, refreshConfig, devices }) => {
filename={`ca.crt`}
content={isDone.CA}
label={"Download ca.crt"}
/>
/> */}
</Stack>
</DialogContentText>
</DialogContent> : <DialogContent>

View file

@ -1,6 +1,6 @@
{
"name": "cosmos-server",
"version": "0.10.0-unstable12",
"version": "0.10.0-unstable13",
"description": "",
"main": "test-server.js",
"bugs": {

View file

@ -7,7 +7,7 @@
<p align="center"><a href="https://github.com/DrMxrcy"><img src="https://avatars.githubusercontent.com/DrMxrcy" style="border-radius:48px" width="48" height="48" alt="null" title="null" /></a>
<a href="https://github.com/soldier1"><img src="https://avatars.githubusercontent.com/soldier1" style="border-radius:48px" width="48" height="48" alt="null" title="null" /></a>
<a href="https://github.com/devcircus"><img src="https://avatars.githubusercontent.com/devcircus" style="border-radius:48px" width="48" height="48" alt="Clayton Stone" title="Clayton Stone" /></a>
<a href="https://github.com/Serph91P"><img src="https://avatars.githubusercontent.com/Serph91P" style="border-radius:48px" width="48" height="48" alt="Seraph91P" title="Seraph91P" /></a>
<a href="https://github.com/BlackrazorNZ"><img src="https://avatars.githubusercontent.com/BlackrazorNZ" style="border-radius:48px" width="48" height="48" alt="null" title="null" /></a>
</p><!-- /sponsors -->
---

View file

@ -5,7 +5,6 @@ import (
"strconv"
"strings"
"io/ioutil"
"fmt"
"github.com/miekg/dns"
"github.com/azukaar/cosmos-server/src/utils"
@ -41,52 +40,6 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
// []string hostnames
hostnames := utils.GetAllHostnames(false, true)
originalHostname := hostnames[0]
specialQuery := false
// if lighthouse-cosmos.constellation is the query, return originalHostname's external lookup
for i, q := range r.Question {
if strings.HasSuffix(q.Name, "lighthouse-cosmos.constellation.") {
utils.Debug("DNS Overwrite lighthouse-cosmos.constellation with " + originalHostname)
// Create a deep copy of the original request.
modifiedRequest := r.Copy()
client := new(dns.Client)
// Modify only the copied request.
modifiedRequest.Question[i].Name = originalHostname + "."
externalResponse, time, err := externalLookup(client, modifiedRequest, DNSFallback)
if err != nil {
utils.Error("Failed to forward query:", err)
return
}
utils.Debug("DNS Forwarded DNS query to "+DNSFallback+" in " + time.String())
for _, rr := range externalResponse.Answer {
if aRecord, ok := rr.(*dns.A); ok {
// 2. Replace the hostname with "lighthouse-cosmos.constellation".
modifiedString := fmt.Sprintf("lighthouse-cosmos.constellation. A %s", aRecord.A.String())
// 3. Convert the string back into a dns.RR.
newRR, err := dns.NewRR(modifiedString)
if err != nil {
utils.Error("Failed to convert string into dns.RR:", err)
return
}
// Replace the response RR with the new RR.
r.Answer = append(r.Answer, newRR)
}
}
m = r
specialQuery = true
}
}
if !customHandled {
customDNSEntries := config.ConstellationConfig.CustomDNSEntries
@ -104,7 +57,7 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
}
}
if !specialQuery {
if !customHandled {
// Overwrite local hostnames with Constellation IP
for _, q := range r.Question {
utils.Debug("DNS Question " + q.Name)
@ -117,6 +70,7 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
}
}
}
}
if !customHandled {
// Block blacklisted domains
@ -148,7 +102,6 @@ func handleDNSRequest(w dns.ResponseWriter, r *dns.Msg) {
m = externalResponse
}
}
w.WriteMsg(m)
}

View file

@ -81,15 +81,6 @@ func DeviceCreate(w http.ResponseWriter, req *http.Request) {
return
}
// read configYml from config/nebula.yml
configYml, err := getYAMLClientConfig(deviceName, utils.CONFIGFOLDER + "nebula.yml")
if err != nil {
utils.Error("DeviceCreation: Error while reading config", err)
utils.HTTPError(w, "Device Creation Error: " + err.Error(),
http.StatusInternalServerError, "DC005")
return
}
capki, err := getCApki()
if err != nil {
utils.Error("DeviceCreation: Error while reading ca.crt", err)
@ -98,6 +89,15 @@ func DeviceCreate(w http.ResponseWriter, req *http.Request) {
return
}
// read configYml from config/nebula.yml
configYml, err := getYAMLClientConfig(deviceName, utils.CONFIGFOLDER + "nebula.yml", capki, cert, key)
if err != nil {
utils.Error("DeviceCreation: Error while reading config", err)
utils.HTTPError(w, "Device Creation Error: " + err.Error(),
http.StatusInternalServerError, "DC005")
return
}
json.NewEncoder(w).Encode(map[string]interface{}{
"status": "OK",
"data": map[string]interface{}{

View file

@ -86,7 +86,6 @@ func ExportConfigToYAML(overwriteConfig utils.ConstellationConfig, outputPath st
finalConfig.StaticHostMap = map[string][]string{
"192.168.201.1": []string{
"lighthouse-cosmos.constellation:4242",
utils.GetMainConfig().HTTPConfig.Hostname + ":4242",
},
}
@ -119,7 +118,7 @@ func ExportConfigToYAML(overwriteConfig utils.ConstellationConfig, outputPath st
return nil
}
func getYAMLClientConfig(name, configPath string) (string, error) {
func getYAMLClientConfig(name, configPath, capki, cert, key string) (string, error) {
utils.Log("Exporting YAML config for " + name + " with file " + configPath)
// Read the YAML config file
@ -137,7 +136,6 @@ func getYAMLClientConfig(name, configPath string) (string, error) {
if staticHostMap, ok := configMap["static_host_map"].(map[interface{}]interface{}); ok {
staticHostMap["192.168.201.1"] = []string{
"lighthouse-cosmos.constellation:4242",
utils.GetMainConfig().HTTPConfig.Hostname + ":4242",
}
} else {
@ -156,9 +154,9 @@ func getYAMLClientConfig(name, configPath string) (string, error) {
}
if pkiMap, ok := configMap["pki"].(map[interface{}]interface{}); ok {
pkiMap["ca"] = "ca.crt"
pkiMap["cert"] = name + ".crt"
pkiMap["key"] = name + ".key"
pkiMap["ca"] = capki
pkiMap["cert"] = cert
pkiMap["key"] = key
} else {
return "", errors.New("pki not found in nebula.yml")
}
@ -170,6 +168,8 @@ func getYAMLClientConfig(name, configPath string) (string, error) {
return "", errors.New("relay not found in nebula.yml")
}
configMap["deviceName"] = name
// export configMap as YML
yamlData, err = yaml.Marshal(configMap)
if err != nil {

View file

@ -85,6 +85,8 @@ func RouterGen(route utils.ProxyRouteConfig, router *mux.Router, destination htt
}
}
destination = utils.Restrictions(route.RestrictToConstellation)(destination)
destination = SmartShieldMiddleware(route.Name, route.SmartShield)(destination)
originCORS := route.CORSOrigin
@ -143,8 +145,6 @@ func RouterGen(route utils.ProxyRouteConfig, router *mux.Router, destination htt
destination = utils.SetSecurityHeaders(destination)
}
destination = utils.Restrictions(route.RestrictToConstellation)(destination)
destination = tokenMiddleware(route.AuthEnabled, route.AdminOnly)(utils.CORSHeader(originCORS)((destination)))
origin.Handler(destination)