Comments (5)
@jagthedrummer I'm open to either solution, thinking back on this one I just remember this being pretty difficult to implement. A lot has changed since then though, so if we want to prioritize it I can take another shot at it.
from bullet_train.
@gazayas no need to prioritize it as far as I'm concerned.
from bullet_train.
As you can tell by the number of commits on the branch I started working on, this one's taking some effort to get moving. I've been going back and forth with Digital Ocean's support team for a bit and have gotten to the point where the site is deployed, but I'm getting an error when trying to actually access the site.
Although it's kind of old, I'm putting this video here for reference.
Currently trying to attach a database, since the details in the template I wrote aren't seeming to pick up on production: true
.
from bullet_train.
@andrewculver I’ve spent a decent amount of time on this, and I’ve come to the conclusion that a one-click deploy button is great for static websites and applications early in the development process, but for a number of reasons I don’t think that this is currently a viable option for Bullet Train and that BT devs will be better off simply going the whole 9 yards by setting up everything via Digital Ocean for their Bullet Train.
Here are the reasons why:
- You can only make a dev database to experiment with deployment. Upgrading to a production-ready database involves more steps.
- You can’t get the
DATABASE_URL
connection string until after the app successfully deploys. You then grab it from the db settings and set it as an environment variable (in my opinion, Render took care of this better in that you didn’t need to have a successful deployment first). - After you finally set the connection string, THAT’S when you run
rake db:migrate
in the console. I wanted to automate this step instead of just write it in the console so I asked customer support about it, and they said I needed to use a post-deploy job for this. This isn’t something configured in the deploy template, but in the dashboard. It takes a few steps which can be read in this page in the docs that customer support sent to me. - We usually run
bin/dev
to spin up multiple processes. In the app platform, which is what one-click deployment uses, each component is one container so we can’t use multiple servers (rails s + sidekiq, etc.). Customer support told me however that this can be done by creating a droplet. If it comes to that, I think Bullet Train devs would just better off configuring a droplet from the start and deploying that way.
I’ve read a bunch of Digital Ocean’s articles in the past and I’m sure their service is great, I just think that trying to use one-click deployment will cause more headaches than anything when a lot else has to be configured just to get things moving. The impression I also get from the one-click docs is that it's used more just to test things out, and not for full-on production.
By the way, here’s the spec I used in the digital-ocean-deployment branch:
spec:
name: bullet-train
services:
- name: web
git:
repo_clone_url: https://github.com/gazayas/bullet_train.git
branch: digital-ocean-deployment
envs:
- key: BASE_URL
# TODO: Replace this with the URL Digital Ocean provides after successfully deploying your application.
value: http://localhost:3000/
scope: RUN_AND_BUILD_TIME
- key: SECRET_KEY_BASE
scope: RUN_AND_BUILD_TIME
databases:
- name: bullet-train-dev
engine: PG
production: false
Also, here is the deployed website after attaching the connection string and migrating the database.
from bullet_train.
@gazayas @andrewculver It sounds like maybe the thing to do here is to provide a page in the /docs
area that describes how to deploy to Digital Ocean. Unless things have changed significantly at DO over the last year?
from bullet_train.
Related Issues (20)
- Super_scaffold generator: _id field causes error HOT 2
- super_scaffold:join_model hangs? HOT 8
- Call to invalid method in bullet_train-super_scaffolding-1.7.5/lib/scaffolding/transformer.rb HOT 2
- Crash on initial bin/setup run - error "@isaacs/cliui#***" is wrong version, and LoadError: Could not open library 'vips.42' HOT 2
- Crash in rails generate super_scaffold: active_support/inflector/methods.rb:290:in `constantize': uninitialized constant ApiToken (NameError) HOT 2
- Feature Request: Add option to remove Sidekiq + Redis dependency and use GoodJob (Postgres-based Active Job backend) HOT 2
- Deploying to heroku is broken after upgrading to yarn 4 HOT 2
- `bin/configure` and/or `bin/setup` should run `corepack enable` HOT 1
- Timezone detection is off or not working HOT 3
- Column not created in migration for `_ids` variant of `super_select` fields HOT 2
- undefined method 'owning_association' HOT 1
- undefined method `underscore' for nil
- Super scaffolding makes some incorrect assumptions about naming HOT 2
- Join model scaffolder throws an error if you don't supply class names
- Indentation in scaffolded tests is wrong
- Super scaffolding any model causes the OpenAPI test to start failing HOT 5
- Including Sentry in `app.json` breaks review apps on heroku
- Some of the `bin/configure` stuff would be better in `bin/setup` HOT 1
- A fresh app instantly runs out of memory on heroku
- We shoud activate jemalloc by default on heroku
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bullet_train.