Publish a course on any topic and start earning, or enroll in one and learn at your own pace with lifetime access.
- Ruby 3.3.6
- Rails 7.1.6
- PostgreSQL
- Bun 1.3.6 (JavaScript bundler and package manager)
- Bootstrap 4.5
- Ruby 3.3.6
- Bun (v1.3+ recommended)
- PostgreSQL
- ImageMagick (for image processing)
- Graphviz (optional, for generating ERD diagrams)
brew install postgresql imagemagick graphviz
curl -fsSL https://bun.sh/install | bashsudo apt-get install postgresql libpq-dev imagemagick graphviz
curl -fsSL https://bun.sh/install | bashgit clone https://github.com/rormvp/corsego
cd corsegobundle install
bun installDelete the existing encrypted credentials and create your own:
rm config/credentials.yml.enc
EDITOR=vim rails credentials:editAdd the following structure (replace with your actual keys):
awss3:
access_key_id: YOUR_CODE_FOR_S3_STORAGE
secret_access_key: YOUR_CODE_FOR_S3_STORAGE
google_analytics: YOUR_CODE_FOR_GOOGLE_ANALYTICS
google_oauth2:
client_id: YOUR_CODE_FOR_OAUTH
client_secret: YOUR_CODE_FOR_OAUTH
development:
github:
client: YOUR_CODE_FOR_OAUTH
secret: YOUR_CODE_FOR_OAUTH
stripe:
publishable: YOUR_STRIPE_PUBLISHABLE
secret: YOUR_STRIPE_SECRET
production:
github:
client: YOUR_CODE_FOR_OAUTH
secret: YOUR_CODE_FOR_OAUTH
stripe:
publishable: YOUR_STRIPE_PUBLISHABLE
secret: YOUR_STRIPE_SECRET
facebook:
client: YOUR_CODE_FOR_OAUTH
secret: YOUR_CODE_FOR_OAUTH
smtp:
address: email-smtp.eu-central-1.amazonaws.com
user_name: SMTP_CREDENTIALS_USER_NAME
password: SMTP_CREDENTIALS_PASSWORDrails db:create db:migrateThis starts both the Rails server and Bun watcher with a single command:
bin/devThe app will be available at http://localhost:3000
In one terminal, start the Rails server:
rails serverIn another terminal, start the Bun watcher for JavaScript:
bun run devThe app will be available at http://localhost:3000
If you don't need live reloading, you can compile assets once and run just the Rails server:
bun run build
rails server- Stripe - Payment processing (development and production)
- OAuth providers - Google, GitHub, Facebook authentication
- AWS S3 - File storage
- Amazon SES - Email delivery
- Google Analytics - Usage tracking
# All tests
rails test
# System tests (browser-based)
rails test:system
# Controller tests only
rails test test/controllersSee DEPLOYMENT.md for full deployment instructions.
kamal setup # First-time setup
kamal deploy # Deploy latest committed coderails cPublicActivity.enabled = false
Enrollment.create(user: User.find(id), course: Course.find(id), price: 0)Course.where(stripe_product_id: nil).each do |course|
product = Stripe::Product.create(name: course.title)
price = Stripe::Price.create(product: product, currency: "usd", unit_amount: course.price.to_i)
course.update(stripe_product_id: product.id, stripe_price_id: price.id)
endbundle exec erd- Code linting improvements


