https://github.com/appliku/djangitos
I will rewrite ec2 deployment tutorial as soon as possible. Thanks for reminding me about it.
181 karma · joined May 1, 2020
https://github.com/appliku/djangitos
I will rewrite ec2 deployment tutorial as soon as possible. Thanks for reminding me about it.
I have a question. Are you deploying it to your servers/cloud accounts or clients’ accounts?
Regarding your questions: it is responsibility of the app to build and upload the static assets where needed.
If you want recommendation what to do, I’d say you’ll need a custom dockerfile, install node, run webpack in there and collect static.
If you are not using collectstatic in that process then given the lack of details I’d say why are you doing it in the same repo at all. But again – you provided very little details.
So if it is a website(server rendered pages, SEO is important,etc) - you should have node and do optimisations before pushing to s3.
If it is an app (RIA,SPA) then I’d say don’t mix frontend and backend. Decouple it and ship frontend separately.
Appliku Interface is built and served with Netlify. I still remember those dark times when I had frontend inside the main repo. It was largely inconvenient.
Either way happy to chat about your issues in our discord server. I am more than happy to help you figuring this out.
I have yet to write a tutorial about celery.
To specify processes to run you use Procfile. Specify your celery commands and enable them in Process tab in Appliku interface.
In order to have celery beat working you should use redbeat: https://github.com/sibson/redbeat
Other than that – no specific requirements. Drop me a line in contacts on our site if you need any help. Or in our Discord Community: https://appliku.com/discord
But Appliku will keep being deployment solution for apps.
Appiku doesn’t turn off your servers.
Scaling and spinning up/down additional servers is in plans.
The feature to back up at least postgres is planned, fail overs , replication, etc is not even planned yet. There are companies that have whole departments working on managed DB offerings, sadly – we don't. yet :)
We aspire to build a convenient service for Python/Django and there is a long road ahead.
But yes, setting up a server is not super hard. Doing it often and with convenience that's where improvement is needed compared to doing it manually.
At the moment databases in Appliku are best fit for non-production environments. So while you can enjoy easy and great deployments of your apps, I am not ready yet to compete on the production databases front. So no, we don't offer fail over or even backups at the moment. Backups are in plans, but more advanced features for databases is not even in backlog.
The more solutions the better!
Wish you best of luck!
While I know how to deploy myself I am fed up with that. Especially when it comes to a new project. There are so many places where you can screw up with a typo or stuff like that.
So while I know how to do it by myself, I don't enjoy doing that and that's how the project got started.
By the way if curious i wrote a post about that: https://dev.to/kostjapalovic/tired-of-deployments-built-my-o...
Well, if you feel that something is off you just revoke credentials.
I will update the article now. Thanks again
What they offer for $250 per process can be done at $60/mo per whole app.
When I helped them move all background workers and all non-production apps to Digital Ocean they ended up saving $7k/mo which blew my mind.
It is easy to start on Heroku, but staying there is a black hole in any budget.
Thankfully we've built Heroku Config Vars sync so one can move off of Heroku gradually.
But I wanted a solution where I don't need to remember anything DevOps while writing/shipping my apps.
I also added a generous free plan that allows all features. Then AWS has free credits so one can start their next big thing without expenses and not learning a single thing about deployment at all
It is easy to start on Heroku. With one app, one process.
When you have multiple apps and several processes there is a way to reduce costs and not loose in convenience.
$10/mo droplet can hold plenty of apps and it is still $10/mo. If you don't need a production grade Database – Appliku has them at 0 cost.
Back in a day I moved several of my side projects to Heroku. I was happy until i received a $90+ invoice by the end of the month. Now a $10/mo droplet holds even more projects for me.
With Heroku Config Vars sync feature one of the customers managed to save around $7k/mo on fat Dynos that are insanely overpriced in Heroku.
So while DO Apps platform will definitely have their target audience, Appliku allows to save a lot of cash.
Hope I was able to answer your question :)
You can check screenshots, you can check for new CSS/JS files included in page.
That's a start.
Also you should track DNS/NS changes.
Only screenshots are not enough. What if they redirect users elsewhere? Open new windows (well, browsers fight it themselves, but still).
To summarise this: - DNS changes - changes in included JS/CSS files - changes in new outgoing links on a given page.
This should be enough for starters
It is possible. Just do simple things and write.
But then you reach lines about $4m in sales and you are like "c'mon that just not me, right? it can't be".
I guess most of the time people have these questions in their head: - Who am I to write? I am no expert (afraid to express an opinion, share knowledge) - Whom will I teach? There are tons of people who know more.
and all that stuff.
What I am trying to say depending on current environment the person is in – it can be very hard to overcome those feelings and just start writing.
People should know that when they start writing when they start doing what they have never done – they will at some point be at the place they never been, out of that bubble where they were with discouraging peers.
Maybe that's why people invented aliases?
Let's say to deploy change I do "git push" and that's it. Everything else is done for me.
In the case with the app you described – you have already done major part of heavy lifting with the initial setup.
In your case you are not using git, it means you might have problems adding anyone else to help you coding.
Side note: if you are not using git you can easily lose your code if you don't have any other backups if the server goes down and something happens with your computer at the same time.
Now, variables, credentials: something tells me you have them in your code, which is bad. If you just add git, it is even worse – you will have them in a repo and again it is bad.
Now imagine the situation when you need to move to another server. You have all your code in the system, no containers or dockers. My gut tells me that you don't have scripts to automatically install everything on a new server. It will be a nightmare to install everything and try not to forget how they were set up(judging from the Django version it was a very long time ago).
What you have it works now, but such setup makes you absolutely unprepared for any change(new people, migration to another server, etc).
So, those were bad things I pointed out.
Let's see what (in)direct benefits of using a "middle-software":
- you will use git. It gives you a chance to add new people to the team, code history, code backup - Your task as a developer is to git push the code. DEPLOYMENT is not exactly the concern for a developer. - You are forced to have more up-to-date workflow. App should be tested before going out or at least should have ability to be tested. Tests are exectured by CI/CD of some sort. So you have to work in the way to be ready for that.
So, what I am trying to articulate here is that having benifits of modern tools to work in team, test the app, check code quality to eventually have better application requires certain approach to storing your code and deploying it in automated fashion. By doing it manually over ftp/sftp and manually running commands to update/restart it – you are not letting yourself to use other modern teachnologies and tools. And they are middle-software in their niche/for their task. So, if you want better quality software of yours – you shoudl use many other things that you can called "middle-software".
When we work alone and we are not used to work with all modern tools we choose workflow that is super fast and convenient for us at that point. I too back in a day was running production server running in "screen" and cmd/ctrl+s applied my changes and it felt logical and very easy.
What I realized that this setup is impossible to control and especially replicate. And everything falls apart when you have somebody else who needs to make changes.
Fast forward, 2020 – I don't want to think about two things: server configuration and app deployments. I want to push my code and see changes. I want to be able to invite others to my git repo and nothing in workflow should change.
When you do things manually it just doesn't happen without pain.
I hope I gave you a good enough answer, and examples and metaphors to articulate my ideas in this very huge topic.
Wish you a great day!
With Appliku you have your web server installed, databases provisioned and settings applied.
With CI/CD pipeline you have to write all that yourself.
You may think that one of the core features of Appliku is a niche CI/CD that has a pipeline written for you for the task of deploying and running your Python app.
Could you build it yourself? yes. Question is, should you?
Additionally, you have servers provisioning and setup, DNS records, SSL certificates issued, and many more things taken care of.