Skip to content

Commit 705b006

Browse files
committed
Updated README
1 parent f4df038 commit 705b006

File tree

1 file changed

+40
-87
lines changed

1 file changed

+40
-87
lines changed

README.md

Lines changed: 40 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This is the source code repository for Arquivo, a note-taking app.
66

77
Arquivo seeks to be an archive for your digital artifacts, ephemera, and notes. Its purpose is to help you keep track of your research, tasks, and thoughts, and help you produce better end products (i.e. essays, papers, books, apps).
88

9-
I currently use this app for daily journaling, keeping track of household information, and all of the notekeeping required to perform my day job as a software engineer.
9+
I currently use this app for: daily journaling, personal bookmarking, keeping track of household projects, and all of the notekeeping required to perform my day job as a software engineer.
1010

1111
## Values
1212

@@ -16,12 +16,14 @@ Arquivo's design choices and compromises are driven by the following values:
1616
2. **Durability**. Your data is portable by default, and it should outlive this app.
1717
3. **Longevity**. You should be able to keep using this app for at least 10+ years.
1818

19+
Data is stored in markdown within a git repository. You will always be able to read your data, move it elsewhere, and revert back to an earlier version.
20+
1921
## Goals
2022

2123
Arquivo will be a successful project if:
2224

2325
- It can store and search all the digital artifacts I care about.
24-
- Different users can successfully use their own organization strategies.
26+
- Different users can successfully use their own organization strategies (bullet journaling, zettelkasten, whatever).
2527
- Using this app actually leads to better end products (i.e. essays, papers, books, apps).
2628

2729
## Features
@@ -30,107 +32,58 @@ Arquivo currently supports the following features:
3032

3133
- write notes in markdown
3234
- attach files to notes
33-
- create tasks from notes
35+
- create tasks in notes
3436
- organize notes by notebook
3537
- notebooks are automatically serialized to files and folders
3638
- serialized files are stored in git repos
3739
- fulltext search
3840
- search by hashtag or @-mention
3941
- bookmark websites
4042
- sync calendars via `.ical` files
41-
- sync with pinboard
43+
- browse by week or month
44+
- search todo lists
45+
- generate a static website from your notebook
4246

4347

4448
## Installation
45-
### Dependencies
46-
47-
At the time of writing, very little effort has gone into making the app comfortable for new users. These instructions may be out of date.
48-
49-
I hereby assume you, dear reader, have a certain level of familiarity with ruby, rails, and node. You will need to install:
50-
51-
- Ruby >= 2.6.5
52-
- Node ~13 or so
53-
- Yarn 1.22.4
54-
55-
### Setup
56-
57-
```bash
58-
git clone [email protected]:phillmv/arquivo.git
59-
60-
bundle
61-
62-
yarn install
63-
64-
bundle exec rails db:setup
65-
66-
bundle exec rails c
67-
```
68-
69-
The app assumes you have a `$HOME/Documents` folder, and will try to create a `$HOME/Documents/arquivo` subdirectory.
70-
71-
Right now, there is no interface for creating notebooks aside from the console. The app assumes there's a Notebook called "journal", and you will want to create a few more at your leisure.
72-
73-
```ruby
74-
Notebook.create(name: "journal") # default notebook
75-
76-
Notebook.create(name: "work")
77-
```
78-
79-
Finally, at the moment the user is hardcoded. You will want to edit `app/models/user.rb` to change `def self.name` to point to your user.
80-
81-
### Adding a calendar
49+
### Mea culpa
8250

83-
```ruby
84-
CalendarImport.create(notebook: "your-notebook-here",
85-
title: "name-of-calendar",
86-
url: "http://example.com/path-to.ics");
51+
Unfortunately, I've had no time to make anything easy to use. New users will have to drop into the Rails console and create a new Notebook, and then via the web interface add an ssh key for git syncing to work.
8752

88-
# to manually process it:
89-
UpdateCalendarsJob.perform_now!
53+
In the meantime, however, _advanced users_ are encouraged to poke thru the Dockerfile; development & deployment is intended to happen thru the corresponding container image.
9054

91-
```
92-
93-
### Let's go!
94-
95-
Then just start the server:
96-
97-
```bash
98-
bundle exec rails s
99-
100-
# or
101-
102-
forego start
103-
```
104-
105-
visit http://localhost:3000/
106-
107-
I _highly_ recommend setting a local hostname of `arquivo.localhost` for your app, and a port 80 redirect via nginx or what have you. Some minor features may not work out of the box otherwise.
55+
### Getting started
10856

109-
## Import / Export
57+
Step 1: [Authenticate with the GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-with-a-personal-access-token-classic).
11058

111-
Meant to sync notebooks between machines. This works quite well with Dropbox.
59+
Step 2: The following incantation should be sufficient to get a working dev environment off the ground:
11260

11361
```bash
114-
rails runner 'SyncToDisk.export_all!("/your/path/here/arquivo")'
115-
rails runner 'SyncFromDisk.import_all!("/your/path/here/arquivo")'
62+
# set up a local copy in, for example, ~/code/arquivo
63+
git clone [email protected]:phillmv/arquivo.git ~/code
64+
65+
# set up a data folder in, for example, ~/Documents/arquivo
66+
mkdir -p ~/Documents/arquivo
67+
68+
# boot up the server:
69+
ARQUIVO_PORT=12346
70+
export ARQUIVO_USER=your_user_here
71+
72+
export ARQUIVO_GIT_NAME="Your Name"
73+
export RAILS_ENV=development
74+
export RAILS_MASTER_KEY=DUMMY
75+
export RAILS_BIND=tcp://0.0.0.0:3001
76+
77+
docker run -it -p "$ARQUIVO_PORT":3001 \
78+
-e ARQUIVO_USER \
79+
-e ARQUIVO_GIT_EMAIL \
80+
-e ARQUIVO_GIT_NAME \
81+
-e RAILS_ENV \
82+
-e RAILS_MASTER_KEY \
83+
-e RAILS_BIND \
84+
-v ~/Documents/arquivo/:/data \
85+
-v ~/code/arquivo:/arquivo \
86+
ghcr.io/phillmv/arquivo-development:latest
11687
```
11788

118-
To automatically sync to a git remote, open a terminal, `cd $HOME/Documents/arquivo/your-notebook-here` and add a remote to the repository, i.e. `git remote origin add URLHERE`.
119-
120-
## Developing
121-
122-
You can install Ruby, Node etc locally OR
123-
124-
you can use the provided `nix-shell` configuration.
125-
126-
### Using nix-shell for development
127-
128-
* install the nix package manager https://nixos.org/download.html - if you are on MacOS Catalina see https://gist.github.com/ghedamat/25c671a02923dbac6c140afe54276f9e
129-
* type `nix-shell` in the root of this project
130-
* you are now in a `bash` shell that has all the required dependencies, type `bundle` and you'll be good to go
131-
132-
### Customizing the hostname
133-
134-
```
135-
echo "HOSTNAME=arquivo.localhost" >> .env.development
136-
```
89+
This should bind a webserver to http://localhost:12346/ , and off you go. Consult this repository for the Dockerfile. A production image is published to `ghcr.io/phillmv/arquivo`.

0 commit comments

Comments
 (0)