Compare commits
13 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f478010699 | ||
|
|
77bdebd0b1 | ||
|
|
a9f4b05b16 | ||
|
|
2024a8367b | ||
|
|
0cd5093976 | ||
|
|
4f3d003a35 | ||
|
|
9f00a34f7d | ||
|
|
15e6c8dff8 | ||
|
|
3d679586d8 | ||
|
|
10bcb49b56 | ||
|
|
57462f98fc | ||
|
|
c05c3d3a89 | ||
|
|
5a91e0d0dd |
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,2 +1,4 @@
|
|||
/.rake_tasks~
|
||||
/temp.db
|
||||
/vendor/
|
||||
/bin/
|
||||
54
README.md
54
README.md
|
|
@ -14,6 +14,17 @@ Next Roda app template iterations will add database, then authentication.
|
|||
|
||||
## Setup
|
||||
|
||||
### Get git
|
||||
|
||||
```
|
||||
sudo apt install git
|
||||
git config --global user.email "myemail@gmail.com"
|
||||
git config --global user.name "Full Name"
|
||||
git config --global credential.helper "cache"
|
||||
|
||||
git clone https://path/to/project.git
|
||||
```
|
||||
|
||||
### Prereq installs
|
||||
|
||||
Will need ruby; install it via package manager or a ruby manager like rbenv/ruby-build. Will need the roda gem, and then an application server such as puma (recommended), gunicorn, or passenger. My examples will use system ruby and puma.
|
||||
|
|
@ -25,29 +36,62 @@ With this example, will basically just ignore the project's Gemfile. Debian 12
|
|||
```
|
||||
sudo apt install ruby ruby-rack puma ruby-erubi ruby-tilt ruby-sequel ruby-sqlite3 rake
|
||||
sudo gem install roda rack-unreloader
|
||||
|
||||
cd my-project
|
||||
```
|
||||
|
||||
#### Option 2: Bundler
|
||||
#### Option 2a: Bundler system package
|
||||
|
||||
Run the bundle command from the project's root directory
|
||||
Run the bundle install command from the project's root directory
|
||||
|
||||
```
|
||||
sudo apt install ruby ruby-bundler
|
||||
bundle config set --local path 'vendor/bundle'
|
||||
sudo apt install ruby ruby-bundler ruby-dev gcc pkgconf make g++ libyaml-dev libffi-dev
|
||||
echo 'gem: --no-document' >> ~/.gemrc
|
||||
sudo cp ~/.gemrc /root/
|
||||
bundle config set --global path 'vendor/bundle'
|
||||
sudo cp -r .bundle /root/
|
||||
|
||||
cd my-project
|
||||
bundle install
|
||||
```
|
||||
|
||||
#### Option 2b: Bundler system gem (recommended)
|
||||
|
||||
Similar to above but might as well use the gem install to get the latest bundler. The Debian apt packaged bundler is currently a bit outdated and missing some features compared to the latest.
|
||||
|
||||
```
|
||||
sudo apt install ruby ruby-dev gcc pkgconf make g++ libyaml-dev # zlib1g-dev libffi-dev #(for rails stuff)
|
||||
echo 'gem: --no-document' >> ~/.gemrc
|
||||
sudo cp ~/.gemrc /root/
|
||||
sudo gem install bundler
|
||||
bundle config set --global path 'vendor/bundle'
|
||||
sudo cp -r .bundle /root/
|
||||
|
||||
cd my-project
|
||||
bundle install
|
||||
```
|
||||
|
||||
#### Option 3: Rbenv Ruby
|
||||
|
||||
Todo
|
||||
|
||||
## Run it
|
||||
|
||||
In the project root directory:
|
||||
|
||||
```
|
||||
bundle exec puma
|
||||
|
||||
# or if you did not use bundler to install puma...
|
||||
puma
|
||||
```
|
||||
|
||||
This default to development mode. Run it in production mode with:
|
||||
|
||||
```
|
||||
RACK_ENV=production bundle exec puma
|
||||
|
||||
# or if you did not install puma
|
||||
RACK_ENV=production puma
|
||||
```
|
||||
|
||||
|
|
@ -55,7 +99,7 @@ For development, just run it like that. For production, probably want to set up
|
|||
|
||||
### Run it with systemd in production
|
||||
|
||||
Copy the example myapp.service file to `/etc/systemd/system/` and edit accordingly. The example assumes a user named "myapp" with a group name "myapp", the application files are in `/opt/myapp/`, and puma is the system puma.
|
||||
Copy the example myapp.service file to `/etc/systemd/system/` and edit accordingly. The example assumes a user named "myapp" with a group name "myapp", the application files are in `/opt/myapp/`, and puma is the system puma. If you installed puma with bundler, the exe will be at `/opt/myapp/vendor/bundle/ruby/3.1.0/bin/puma`.
|
||||
|
||||
### Notes
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<p class="subtitle is-3">
|
||||
<p class="subtitle">
|
||||
Hello, <%= @name %>!
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<p class="subtitle is-3">
|
||||
<p class="subtitle">
|
||||
Welcome to my new page! Running in <%= ENV['RACK_ENV'] %> mode!
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><%= @page_title || "My Website" %></title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1/css/bulma.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h1 class="title is-1"><%= @page_title || 'Page Title Placeholder' %></h1>
|
||||
<% # maybe put a flash section here some day %>
|
||||
<h1 class="title">
|
||||
<%= @page_title || 'Page Title Placeholder' %>
|
||||
</h1>
|
||||
<%== yield %>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<% for u in @users do %>
|
||||
<p class="subtitle is-3">
|
||||
<p class="subtitle">
|
||||
Hello, <%= u.name %>! You're #<%= u.id %>!
|
||||
</p>
|
||||
<% end %>
|
||||
|
|
|
|||
Loading…
Reference in a new issue