') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - mixcore/mix.core: 🚀 A future-proof enterprise web CMS supporting both headless and decoupled approaches. Build any type of app with customizable APIs on ASP.NET Core/.NET Core. Completely open-source and designed for flexibility. Since 2018. · GitHub
Skip to content

Repository files navigation

Mixcore CMS Become a Backer

backerDonateBuy us a coffee

Fully Open Source UI Tools to create multi-purpose Enterprise Web Apps, Mobile Apps & Application Services

Branchs

  • master: Mixcore v1.0.x LTS
  • develop: Mixcore v2.0.0-alpha.x

UI Screenshots

Admin Portal

Mixcore CMS Back-office is built on top of the much awaited Bootstrap 5. This makes starting a new project very simple. It also provides benefits if you are already working on a Bootstrap 5 project.

(New Portal in Angular / Svelte will be coming soon)

Mixcore Admin Portal Bootstrap 5.x

Mixcore Admin Portal Bootstrap 5.x

Special features (Out of the box)

  • Databases -MySQL, SQL Server, PostgreSQL, SQLite
  • Reliability - Member roles and permissions.
  • High Security - Strong Data Encryption and Security compliance.
  • Multilingual - Flexible multilingual content migration.
  • High Performance - Millisecond response time.
  • Cross Platforms - Powered by .NET Core and run everywhere.
  • Online Coding - Visual Studio Code's heart inside.
  • Customizable Designs - Build any kinds of website.
  • SEO Friendly - No extra plugin required.
  • Media Management - Multiple file formats for your website / application.
  • Manage On The Go - Manage and Code everywhere you want.
  • Easy and Accessible - Non deep tech knowledge required.
  • Analytics - Inside Google Analytics dashboard & no extra plugin required.
  • Dynamic Modular Architecture - Powerful module layers & Attribute sets feature.
  • Extensibility - API-first architecture for Plug & Play.
  • Easy Backup - Powerful 1 step export.
  • More Coffee time! - You can relax and explore more ton of features are not listed here...

Architecture

image

CMS and Dashboards built on top of ASP.Net Core / Dotnet Core, SignalR, Angular / Bootstrap / React / Vue / Svelte.

ServicesResultServicesResult
Github workflowBuild Status
Travis CIBuild StatusAppVeyor CIBuild status
GitterJoin the chat at https://gitter.im/mix-core/LobbyLicenses statusFOSSA Status
CodefactorCodeFactorAzureBuild Status

References

Links
STAG / Demohttps://demo.mixcore.org
https://dev.mixcore.org
https://v2.dev.mixcore.org
https://mochahost.demo.mixcore.org/portal (administrator / P@ssw0rd)
Swagger (v2)https://v2.dev.mixcore.org/api/v2/mixcore/swagger/index.html
Dev docshttps://docs.mixcore.org / https://mixcore.dev
Communityhttps://community.mixcore.org
Youtubehttps://www.youtube.com/channel/UChqzh6JnC8HBUSQ9AWIcZAw
Twitterhttps://twitter.com/mixcore_cms
Mediumhttps://medium.com/mixcore

Ref: How to install Mixcore CMS with Azure Docker Composer

Run with Docker

Latest Docker Image

docker pull ghcr.io/mixcore/mix.core:master
docker run -it --rm -p 5000:80 --name mixcore_cms mixcore/mix.core:latest

Or with Docker Compose

docker-compose build
docker-compose up

GITs clone

mkdir mixcore
cd mixcore
git clone https://github.com/mixcore/mix.core.git

Optional:

Optional steps as those packages are Nuget Library

git clone https://github.com/mixcore/mix.heart.git
git clone https://github.com/mixcore/mix.identity.git

Build & Run with Dotnet SDK

Build & Run Mixcore CMS

REM Make sure you already read and download Dotnet Core SDK here https://dotnet.microsoft.com/download

cd mix.core/src/Mix.Cms.Web
dotnet restore
dotnet build
dotnet run

Modify & Build Portal Front-End source (Optional)

This step is optional and only needed in case you would like to modify the portal front-end code

cd mix.core/src/portal-app
npm install
npm install --global gulp-cli
gulp build

Note: If you facing any System.Data.SqlClient.SqlException error, please replace all content inside "appsettings.json" file with "{}".

Thanks to

This project has been developed using:

License

Mixcore CMS is licensed under the MIT

PermissionsLimitationsConditions
✔ Commercial use✖ Liabilityℹ License and copyright notice
✔ Modification✖ Warranty
✔ Distribution
✔ Private use

FOSSA Status

Activity

Alt

Star History

Star History Chart

Contributors Wall

How to contribute

Fork this repo to your GitHub account, clone it locally and try to follow the following simple guidelines.

  • Never write any code in the master branch
  • When writing code, do it in a specific feature branch
  • Send your pull request from that feature branch
  • After your pull request has been accepted, sync the changes into master from the upstream remote
  • Delete you feature branch
  • Again, NEVER write any code in the master branch ;)
  • Ref: https://datasift.github.io/gitflow/IntroducingGitFlow.html

About

🚀 A future-proof enterprise web CMS supporting both headless and decoupled approaches. Build any type of app with customizable APIs on ASP.NET Core/.NET Core. Completely open-source and designed for flexibility. Since 2018.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

887 stars

Watchers

35 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages