summaryrefslogtreecommitdiff
path: root/README.md
blob: e1a2c1d063d04318fafa063c2634092e6bb459f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# MegaPixels

FaceQuery.me, mozilla, nytimes

## Installation

- miniconda / python3.6
- mysql
- nvm, node
- redis
- nginx

```
conda create -n megapixels python=3.6
conda install pytorch torchvision -c pytorch
conda install faiss-cpu -c pytorch
conda install tensorflow
pip install numpy Pillow
pip install dlib
pip install requests simplejson click pdfminer.six
pip install urllib3 flask flask_sqlalchemy mysql-connector
pip install pymediainfo tqdm opencv-python imutils
pip install scikit-image python-dotenv imagehash scikit-learn colorlog
pip install celery keras tensorflow
pip install python.app # OSX only! needed for matplotlib

sudo apt-get install libmysqlclient-dev

mkdir -p /data_store_hdd/apps/megapixels/faiss/indexes
mkdir -p /data_store_hdd/apps/megapixels/faiss/metadata
```

### MySQL note

You may need to set the database charset to `utf8mb4` in order to import the CSVs:

```
ALTER DATABASE megapixels CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
```

## Building the site

The most recently built copy of the site is kept in the repo.  This is generated directly from NextCloud. Be mindful that NextCloud will create extra copies of things if there are merge conflicts.

```
npm install
npm run build
cd megapixels
python cli_faiss.py sync_metadata
python cli_faiss.py build_faiss
python cli_faiss.py build_db
python cli_site.py build
```

## Running the site

On OSX, you must run the server with `pythonw` because of matplotlib.

```
python cli_flask.py run
python `which celery` worker -A app.server.tasks --loglevel=info -E
redis-server /usr/local/etc/redis.conf
npm run watch
```