Criando meu próprio CMS, uma aventura com C#, Docker e VueJS
Tags: docker, dotnetcore, vue, csharp
Published: 2020-06-24 23:57:20

---
title: Criando meu próprio CMS, uma aventura com C#, Docker e VueJS
published: true
series: CellCms
date: 2020-03-13 01:34:43 UTC
tags: docker,dotnetcore,vuejs,csharp
canonical_url: 
---

![](https://cdn-images-1.medium.com/max/1024/1*U5LrukdkofovVJNLB5GWVg.jpeg)<figcaption>Fonte: <a href="https://www.pexels.com/photo/computer-keyboard-34153/">https://www.pexels.com/photo/computer-keyboard-34153/</a></figcaption>

Sabe aqueles dias em que você pensa em adicionar uma nova Feature a seu projeto e daí para e vê que boa parte das soluções que existem são pagas ou tem algum overhead?

Eis que, então, você para e pensa… “E se eu fizesse minha própria solução?” Afinal, o que é mais da cara de TI do que reinventarmos a roda!?

E então, naquele fatídico momento, me veio a ideia de criar meu próprio sistema de CMS (Content Management System) para meus projetos, profissionais e pessoais.

Não se engane, amigo leitor, esta empreitada não será nenhuma epopéia ou épico, mas sim desventuras em séries de mais um maluco que gosta demais de programar e pouco de gastar dinheiro com hospedagem ou novos serviços!

Sem mais delongas, vamos ao projeto! Eu tenho a mania de no começo de todo projeto, seja em qual escala for, sentar e listar alguns pontos:

1. O que quero fazer neste projeto, ou objetivos do projeto
2. Que tecnologias gostaria de usar, ou poderia chamar de objetivos pessoais
3. Viabilidade, ou seja: Objetivos do Projeto X Pessoais
4. …Eventualmente… definir um nome para o Projeto

Então vou fazer exatamente isso para este projeto! Começando pelos objetivos do projeto:

1. Ter um CMS que seja leve, self-contained e com um pequeno fingerprint
2. Minimizar custos de hospedagem
3. Minimizar custos de manutenção
4. Ser capaz de manter o conteúdo sem precisar editar trocentos arquivos ou gerar nova versão
5. Ser capaz de consultar esse CMS, não importa qual tecnologia de frontend utilizada

Definidos estes objetivos “do projeto”, passei para os meus objetivos pessoais dentro do projeto:

1. Fazer um projeto ponta-a-ponta (fullstack, como preferir) de Software Livre
2. Consolidar conhecimentos sobre Dotnet Core, VueJS, Typescript, Docker, OAuth, OpenId Connect e, quem sabe, Kubernetes
3. Compartilhar este conhecimento de alguma maneira!

> Bem… como estou aqui, digitando este post, deixo a seu critério imaginar a outcome da comparação dos dois! :)

Finalmente, parti para a parte mais difícil de todo projeto… **o nome!** Mas desta vez foi fácil até! Como quero algo mínimo, busquei por termos que pudessem simbolizar coisas pequenas porém funcionais. Depois de ver que já existem **vários CMS abertos e bons** com nomes nesta linha (sério, dá um Google!) optei pelo nome **Cell CMS.** _A ideia aqui é que seja um CMS pequeno, porém que consiga funcionar por si só._

Bastante texto até agora sobre bla bla bla, hora de falarmos Tech, não? Como listei ali nos objetivos pessoais, minha ideia é utilizar as seguintes tecnologias:

- Backend: C#, DotNET Core 3.1, Docker e SQLite
- Frontend do Admin: VueJS com Typescript
- Autenticação: Firebase, Azure Active Directory, Identity Server ou Auth0

Por hoje finalizarei por aqui. No próximo post irei falar sobre a arquitetura que imaginei para a solução, além de já disponibilizar alguns repositórios do GitHub. Obrigado por lerem até aqui e abraços!