julianpoy / RecipeSage-selfhost

A collection of configuration files to host your own private instance of RecipeSage for personal use.
https://recipesage.com
Other
122 stars 27 forks source link

Unable to Create Account on Fresh Install #63

Closed TrezOne closed 9 months ago

TrezOne commented 11 months ago

Basically, the title. When trying to run migrate.sh (modified to reflect my container names which are all prefixed with recipesage-, seems like it's failing:

trezone@rinoa:~$ docker compose exec recipesage-api tsx packages/backend/src/migrate
no configuration file provided: not found

Same message gets kicked back when trying to run activate.sh. Now, when I'm attempting to register an account, the below snippet is what I'm seeing within the api container:

2023-10-18T17:29:44.446954016Z Error
2023-10-18T17:29:44.447010253Z     at Query.run (/app/node_modules/sequelize/src/dialects/postgres/query.js:76:25)
2023-10-18T17:29:44.447022391Z     at /app/node_modules/sequelize/src/sequelize.js:650:28
2023-10-18T17:29:44.447031598Z     at processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-10-18T17:29:44.447040531Z     at async PostgresQueryInterface.select (/app/node_modules/sequelize/src/dialects/abstract/query-interface.js:1001:12)
2023-10-18T17:29:44.447049611Z     at async Function.findAll (/app/node_modules/sequelize/src/model.js:1824:21)
2023-10-18T17:29:44.447058513Z     at async Function.findOne (/app/node_modules/sequelize/src/model.js:1998:12)
2023-10-18T17:29:44.447067426Z     at async /app/packages/backend/src/routes/users.js:643:20
2023-10-18T17:29:44.447076428Z     at async /app/node_modules/sequelize/src/sequelize.js:1196:18
2023-10-18T17:29:44.447085693Z     at async /app/packages/backend/src/routes/users.js:630:19
2023-10-18T17:29:44.447094591Z     at async /app/packages/backend/src/utils/wrapRequestWithErrorHandler.js:4:7
2023-10-18T17:29:44.474326610Z POST /users/register?false=false& 500 270.990 ms - 1033

From my docker-compose file (for version info, with latest being the version at the time of this writing):

trezone@rinoa:~/.docker/compose$ egrep -A 2 '^  recipesage-.*$' docker-compose.override.yml 
  recipesage-static:
    image: julianpoy/recipesage-selfhost:static-latest
    container_name: recipesage-static
--
  recipesage-api: # Hosts backend API
    image: julianpoy/recipesage-selfhost:api-latest
    container_name: recipesage-api
--
  recipesage-typesense:
    image: typesense/typesense:0.24.1
    container_name: recipesage-typesense
--
  recipesage-pushpin: 
    image: julianpoy/pushpin:latest
    container_name: recipesage-pushpin
--
  recipesage-postgres: 
    image: postgres
    container_name: recipesage-postgres
--
  recipesage-proxy: 
    image: nginx
    container_name: recipesage-proxy
--
  recipesage-browserless: # 
    image: browserless/chrome:1.57-puppeteer-19.2.2
    container_name: recipesage-browserless
--
  recipesage-ingredient-instruction-classifier: # 
    image: julianpoy/ingredient-instruction-classifier:latest
    container_name: recipesage-ingredient
julianpoy commented 11 months ago

Interesting, haven't seen that error before. Can you share your full docker-compose (with your secrets redacted)?

julianpoy commented 11 months ago

That said, I do recommend keeping the names of the docker-compose definitions the same, since those are what determine the internal DNS records are. You can change the container name itself just by setting that container_name property, without changing the DNS definition (recipesage-browserless: in your example above)

TrezOne commented 11 months ago

I'd agree on the naming, but with 100+ containers, I just needed some way to distinguish them from my other services 😄 Anyway, snippet from my docker-compose:

  recipesage-static: # Hosts frontend assets
    image: julianpoy/recipesage-selfhost:static-latest
    container_name: recipesage-static
    environment:
      - API_BASE_OVERRIDE=null
    volumes:
      - ${DOCKERCONFDIR}/recipesage/static.entrypoint.sh:/docker-entrypoint.d/static.entrypoint.sh
    restart: unless-stopped

  recipesage-api: # Hosts backend API
    image: julianpoy/recipesage-selfhost:api-latest
    container_name: recipesage-api
    depends_on:
      - recipesage-postgres
      - recipesage-typesense
      - recipesage-pushpin
      - recipesage-browserless
    command: npx ts-node --swc --project packages/backend/tsconfig.json packages/backend/src/bin/www
    environment:
      - STORAGE_TYPE=filesystem
      - FILESYSTEM_STORAGE_PATH=/rs-media
      - NODE_ENV=selfhost
      - VERBOSE=true
      - VERSION=selfhost
      - POSTGRES_DB=${RECIPESAGE_POSTGRES_DB}
      - POSTGRES_USER=${RECIPESAGE_POSTGRES_USER}
      - POSTGRES_PASSWORD=${RECIPESAGE_POSTGRES_PASSWORD}
      - POSTGRES_PORT=${RECIPESAGE_POSTGRES_PORT}
      - POSTGRES_HOST=${RECIPESAGE_POSTGRES_HOST}
      - POSTGRES_SSL=false
      - POSTGRES_LOGGING=false
      - DATABASE_URL=${RECIPESAGE_POSTGRES_DB_URL}
      - GCM_KEYPAIR
      - SENTRY_DSN
      - GRIP_URL=${RECIPESAGE_GRIP_URL}
      - GRIP_KEY=${RECIPESAGE_GRIP_KEY}
      - SEARCH_PROVIDER=typesense
      - TYPESENSE_NODES=${RECIPESAGE_TYPESENSE_NODES}
      - TYPESENSE_API_KEY=${RECIPESAGE_TYPESENSE_API_KEY}
      - STRIPE_SK
      - STRIPE_WEBHOOK_SECRET
      - BROWSERLESS_HOST=recipesage-browserless
      - BROWSERLESS_PORT=3000
      - INGREDIENT_INSTRUCTION_CLASSIFIER_URL=${RECIPESAGE_INGREDIENT_INSTRUCTION_CLASSIFIER_URL}
    volumes:
      - ${DOCKERCONFDIR}/recipesage/apimedia:/rs-media
    restart: unless-stopped

  recipesage-typesense:
    image: typesense/typesense:0.24.1
    container_name: recipesage-typesense
    volumes:
      - ${DOCKERCONFDIR}/recipesage/typesense:/data
    command: "--data-dir /data --api-key=TU731Zc6lKP6BbScbECs3vCD3sCGnONq --enable-cors"
    restart: unless-stopped

  recipesage-pushpin: # Provides websocket support
    image: julianpoy/pushpin:latest
    container_name: recipesage-pushpin
    environment:
      - target=recipesage-api:3000
    restart: unless-stopped

  recipesage-postgres: # Database
    image: postgres
    container_name: recipesage-postgres
    environment:
      - POSTGRES_DB=${RECIPESAGE_POSTGRES_DB}
      - POSTGRES_USER=${RECIPESAGE_POSTGRES_USER}
      - POSTGRES_PASSWORD=${RECIPESAGE_POSTGRES_PASSWORD}
    expose:
      - "5432"
    volumes:
      - ${DOCKERCONFDIR}/recipesage/postgres:/var/lib/postgresql/data
    restart: unless-stopped

  recipesage-proxy: 
    image: nginx
    container_name: recipesage-proxy
    volumes:
      - ${DOCKERCONFDIR}/recipesage/proxy/proxy.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 8086:80
    depends_on:
      - recipesage-static
      - recipesage-api
      - recipesage-pushpin
    restart: unless-stopped
    labels:
      - swag=enable
      - swag_address=recipesage-proxy
      - swag_proto=http
      - swag_url=recipesage.trez.wtf

  recipesage-browserless: # A headless browser for scraping websites with the auto import tool
    image: browserless/chrome:1.57-puppeteer-19.2.2
    container_name: recipesage-browserless
    environment:
      - MAX_CONCURRENT_SESSIONS=3
      - MAX_QUEUE_LENGTH=10
    restart: unless-stopped

  recipesage-ingredient-instruction-classifier: # A mini server that runs a machine learning model able to classify text for improved automatic import
    image: julianpoy/ingredient-instruction-classifier:latest
    container_name: recipesage-ingredient
    environment:
      - SENTENCE_EMBEDDING_BATCH_SIZE=200
      - PREDICTION_CONCURRENCY=4
    restart: unless-stopped
julianpoy commented 11 months ago

The point is that changing the container_name is what you're looking for. Changing the DNS name is only internal to that ad-hoc docker network, and does not pollute the rest of your system.

Anyway, regarding the issue at hand - my guess is that one of POSTGRES_HOST or DATABASE_URL have not been updated to the new DNS name (recipesage-postgres).

Edit: I believe the no configuration file provided: not found is directly from docker compose itself. Is your docker compose file named docker-compose.yml? If not, I believe you have to tell docker compose the location of your config file via -f

MattCorbiell commented 10 months ago

In case it helps, I had a very similar issue and some other issues as well that I ended up resolving by simply changing the migrate.sh file from: docker compose exec api tsx packages/backend/src/migrate to: docker exec recipesage-api tsx packages/backend/src/migrate

where I have my docker-compose YAML file setup like this: api: # Hosts backend API container_name: recipesage-api image: julianpoy/recipesage-selfhost:api-latest

where I only change the container_name and not the DNS name. However, until I made the migrate.sh change, the migration wouldn't work with a custom container name either. So hopefully that helps you out. Technically i'm using portainer as well, but I don't think that makes much of a difference.

In case my solution doesn't help, one of the things I did for debugging to see if the container setup was the problem or the command itself, I tried to shell into the container itself and manually run: tsx packages/backend/src/migrate.js Which, when it worked manually running inside of the container, that hinted it was an issue purely with how the docker exec command was interacting with it.

drahdiwaberl commented 10 months ago

i'm having the same symptom - not being able to create an account.

@MatthewCorbiell 's fix somehow seems to have helped a bit - as with it, it actually looked as if the migrate script did something (there was no output from it before)

but my actual issue seems to be the typesense container not being able to start, exiting like this:

...
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | <jemalloc>: background thread creation failed (11)
recipesage-typesense-1  | E20231120 23:48:10.784286     1 backward.hpp:4199] Stack trace (most recent call last):
recipesage-typesense-1  | E20231120 23:48:10.784312     1 backward.hpp:4199] #14   Object "/opt/typesense-server", at 0x4c8be0, in _start
recipesage-typesense-1  | E20231120 23:48:10.784320     1 backward.hpp:4199] #13   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fbbe029be3f, in __libc_start_main
recipesage-typesense-1  | E20231120 23:48:10.784327     1 backward.hpp:4199] #12   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fbbe029bd8f, in
recipesage-typesense-1  | E20231120 23:48:10.784333     1 backward.hpp:4199] #11   Source "/typesense/src/main/typesense_server.cpp", line 160, in main [0x499642]
recipesage-typesense-1  | E20231120 23:48:10.784339     1 backward.hpp:4199] #10   Source "/typesense/src/typesense_server_utils.cpp", line 411, in run_server [0x6f2986]
recipesage-typesense-1  | E20231120 23:48:10.784348     1 backward.hpp:4199] #9  | Source "/typesense/include/threadpool.h", line 60, in emplace_back<ThreadPool::ThreadPool(size_t)::<lambda()> >
recipesage-typesense-1  | E20231120 23:48:10.784355     1 backward.hpp:4199]     | Source "/usr/local/gcc-10.1.0/include/c++/10.1.0/bits/vector.tcc", line 115, in construct<std::thread, ThreadPool::ThreadPool(size_t
recipesage-typesense-1  | E20231120 23:48:10.784361     1 backward.hpp:4199]     | Source "/usr/local/gcc-10.1.0/include/c++/10.1.0/bits/alloc_traits.h", line 512, in construct<std::thread, ThreadPool::ThreadPool(si
recipesage-typesense-1  | E20231120 23:48:10.784368     1 backward.hpp:4199]     | Source "/usr/local/gcc-10.1.0/include/c++/10.1.0/ext/new_allocator.h", line 150, in thread<ThreadPool::ThreadPool(size_t)::<lambda()
recipesage-typesense-1  | E20231120 23:48:10.784374     1 backward.hpp:4199]       Source "/usr/local/gcc-10.1.0/include/c++/10.1.0/thread", line 149, in ThreadPool [0x6f7e07]
recipesage-typesense-1  | E20231120 23:48:10.784380     1 backward.hpp:4199] #8    Source "../../../../../libstdc++-v3/src/c++11/thread.cc", line 139, in _M_start_thread [0x1512958]
recipesage-typesense-1  | E20231120 23:48:10.784386     1 backward.hpp:4199] #7    Source "../../../../../libstdc++-v3/src/c++11/system_error.cc", line 338, in __throw_system_error [0x4943dd]
recipesage-typesense-1  | E20231120 23:48:10.784392     1 backward.hpp:4199] #6    Source "../../../../libstdc++-v3/libsupc++/eh_throw.cc", line 95, in __cxa_throw [0x149ab13]
recipesage-typesense-1  | E20231120 23:48:10.784399     1 backward.hpp:4199] #5    Source "../../../../libstdc++-v3/libsupc++/eh_terminate.cc", line 58, in terminate [0x149a9c0]
recipesage-typesense-1  | E20231120 23:48:10.784404     1 backward.hpp:4199] #4    Source "../../../../libstdc++-v3/libsupc++/eh_terminate.cc", line 48, in abort [0x149a955]
recipesage-typesense-1  | E20231120 23:48:10.784410     1 backward.hpp:4199] #3    Source "../../../../libstdc++-v3/libsupc++/vterminate.cc", line 95, in __verbose_terminate_handler [0x492892]
recipesage-typesense-1  | E20231120 23:48:10.784417     1 backward.hpp:4199] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fbbe029a7f2, in abort
recipesage-typesense-1  | E20231120 23:48:10.784423     1 backward.hpp:4199] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fbbe02b4475, in raise
recipesage-typesense-1  | E20231120 23:48:10.784430     1 backward.hpp:4199] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fbbe0308a7c, in pthread_kill
recipesage-typesense-1  | Aborted (Signal sent by tkill() 1 0)
recipesage-typesense-1  | E20231120 23:48:10.934513     1 typesense_server.cpp:102] Typesense 0.24.1 is terminating abruptly.

any input appriceated..

(fwiw, i did not edit the docker-compose file other than changing the port mapping for api)

MattCorbiell commented 10 months ago

@drahdiwaberl I did have a couple of stumbles along the way while setting up this custom docker-compose file as well. so, it may be worthwhile for me to provide my exact process / docker-compose file to see if you can get my exact process to work as a starting point and then make changes 1 by 1 from a working configuration first to see what changes of yours cause the issue.

Firstly, I am going to use portainer and its stacks in these steps. Ultimately, it should work very similarly to docker compose up; however, if you choose to not use portainer then you may get a different issue I didn't encounter. For example, a small difference I know of is the default container naming scheme when no custom name is set works differently between portainer and docker compose up. portainer = recipesage-typesense | docker compose up = recipesage-typesense-1 in my experience.

Secondly, because I have many containers other than Recipesage, I access them via a reverse proxy (Traefik) so I have a docker network setup called "frontend". I believe if you don't set one it should just create its own Recipesage one, but in my docker-compose file that is why you will see it mention the "frontend" network. to create that network I simply ran: "docker network create frontend" before doing any of my container steps.

Also, my containers are located on my Ubuntu 22.04 host VM at /nfs/containers, you will need to use the pathing for wherever on your host machine you keep your containers persistent bind mounts.

If you want to use a custom docker network (I used name: "frontend")

on host VM, navigate to your containers folder

Clone the github files to a new directory called "recipesage" inside the current folder

Then, edit docker-compose.yml (or in my case, delete it and just create a fresh stack in portainer)

The following docker-compose file has usernames/passwords replaced with the defaults provided via the github docker-compose file. Once your setup works, then begin changing these. I don't advise changing them to start since some of the variable names are referenced in multiple locations and if you only change one of them, problems will occur. For example, changing the TYPESENSE_API_KEY in the "api" environment variables, but then not changing it in the "typesense" command

Secondly, If you are not using Traefik as a reverse proxy, ignore the "labels" section of the "proxy" in docker-compose. I have still opened a port with "ports", so you don't need a reverse proxy to access it anyways for testing/debugging.

Also, my document starts with 3 dashes instead of a version number. I believe as of docker compose v2, it no longer uses the version number and just uses the most recent version.

docker-compose file:

---
networks:
  default:
    external: true
    name: frontend

services:
  proxy: # The proxy must not be removed. If needed, point your own proxy to this container, rather than removing this
    container_name: recipesage-proxy
    image: nginx:latest
    restart: unless-stopped
    volumes:
    - /nfs/containers/recipesage/proxy.conf:/etc/nginx/conf.d/default.conf
    ports:
    - 9903:80
    depends_on:
      - static
      - api
      - pushpin
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.recipesage.entrypoints=recipesage"
      - "traefik.http.routers.recipesage.rule=Host(`10.0.0.100`)"
      - "traefik.http.routers.recipesage.tls=true"

  static: # Hosts frontend assets
    container_name: recipesage-static
    image: julianpoy/recipesage-selfhost:static-latest
    restart: unless-stopped
    volumes:
      - /nfs/containers/recipesage/static.entrypoint.sh:/docker-entrypoint.d/static.entrypoint.sh
    environment:
      - API_BASE_OVERRIDE=null

  api: # Hosts backend API
    container_name: recipesage-api
    image: julianpoy/recipesage-selfhost:api-latest
    restart: unless-stopped
    volumes:
      - /nfs/containers/recipesage/apimedia:/rs-media
    depends_on:
      - postgres
      - typesense
      - pushpin
      - browserless
    command: npx ts-node --swc --project packages/backend/tsconfig.json packages/backend/src/bin/www
    environment:
      - STORAGE_TYPE=filesystem
      - FILESYSTEM_STORAGE_PATH=/rs-media
      - NODE_ENV=selfhost
      - VERBOSE=false
      - VERSION=selfhost
      - POSTGRES_DB=recipesage_selfhost
      - POSTGRES_USER=recipesage_selfhost
      - POSTGRES_PASSWORD=recipesage_selfhost
      - POSTGRES_PORT=5432
      - POSTGRES_HOST=postgres
      - POSTGRES_SSL=false
      - POSTGRES_LOGGING=false
      - DATABASE_URL=postgresql://recipesage_selfhost:recipesage_selfhost@postgres:5432/recipesage_selfhost
      - GCM_KEYPAIR
      - SENTRY_DSN
      - GRIP_URL=http://pushpin:5561/
      - GRIP_KEY=changeme
      - SEARCH_PROVIDER=typesense
      - 'TYPESENSE_NODES=[{"host": "typesense", "port": 8108, "protocol": "http"}]'
      - TYPESENSE_API_KEY=recipesage_selfhost
      - STRIPE_SK
      - STRIPE_WEBHOOK_SECRET
      - BROWSERLESS_HOST=browserless
      - BROWSERLESS_PORT=3000
      - INGREDIENT_INSTRUCTION_CLASSIFIER_URL=http://ingredient-instruction-classifier:3000/

  typesense:
    container_name: recipesage-typesense
    image: typesense/typesense:0.24.1
    restart: unless-stopped
    volumes:
      - /nfs/containers/recipesage/typesensedata:/data
    command: "--data-dir /data --api-key=recipesage_selfhost --enable-cors"

  pushpin: # Provides websocket support
    container_name: recipesage-pushpin
    image: julianpoy/pushpin:2023-09-17
    restart: unless-stopped
    environment:
      - target=api:3000

  postgres: # Database
    container_name: recipesage-postgres
    image: postgres:16
    restart: unless-stopped
    volumes:
      - /nfs/containers/recipesage/postgresdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=recipesage_selfhost
      - POSTGRES_USER=recipesage_selfhost
      - POSTGRES_PASSWORD=recipesage_selfhost

  browserless: # A headless browser for scraping websites with the auto import tool
    container_name: recipesage-browserless
    image: browserless/chrome:1.57-puppeteer-19.2.2
    restart: unless-stopped
    environment:
      - MAX_CONCURRENT_SESSIONS=3
      - MAX_QUEUE_LENGTH=10

  ingredient-instruction-classifier: # A mini server that runs a machine learning model able to classify text for improved automatic import
    container_name: recipesage-classifier
    image: julianpoy/ingredient-instruction-classifier:1.4.9
    restart: unless-stopped
    environment:
      - SENTENCE_EMBEDDING_BATCH_SIZE=200
      - PREDICTION_CONCURRENCY=4

Use this docker-compose file to create the containers (for me that is by "updating the stack" in portainer)

After creating the containers with portainer or docker compose up, navigate to the container's folder on your host machine to fix the migrate.sh file.

edit migrate.sh and activate.sh (previous_content -> new_content) (I use recipesage-api, use what your container name is)

run migrate.sh

you know migrate.sh ran properly if you see a lot of outputs to your console (like a hundred). In one of my versions where it wasn't working it would just output "migrations completed", but I didn't realize that is simply because migrate.sh has an echo command to always output that after running the migration and it will be output whether or not the migration step actually worked.

Now, with the containers running, try going to your recipesage webpage at the port you set up and try to create a fresh user.

I hope this provides some help.

drahdiwaberl commented 10 months ago

thanks a lot @MatthewCorbiell , there's a lot to learn in that (i'm afraid) .. will try to merge that with my environment and align it to my stumbles ;)

drahdiwaberl commented 10 months ago

well, no. understanding (i think) everything @MatthewCorbiell did and why - my issues seem to root somewhere else. got the migrate script working thanks to the changes, but the besides the typesense container quitting it also seems the api one itself is permanently rebooting in my latest setup .. afraid that's over my head. thanks anyways.

julianpoy commented 10 months ago

@drahdiwaberl can you post the associated logs for your API crash?

Just to be clear, is everyone here experiencing issues only after renaming the containers?

MattCorbiell commented 10 months ago

@julianpoy I figure your question is mostly aimed at the other two people still having issues. However, to make sure their is no confusion, my setup done with the steps I mentioned above is working. It is also working with re-named containers.

I believe the only issues I had prior to getting a working setup was when I tried to change the servicename instead of setting the container_name variable. Also, I had the issue of needing to adjust the migrate.sh and activate.sh files afterwards to use the new custom name.

drahdiwaberl commented 10 months ago

@drahdiwaberl can you post the associated logs for your API crash?

nuked everything, will give it another try soon and deliver logs.

Just to be clear, is everyone here experiencing issues only after renaming the containers?

didn't edit anything at all in the first place

just the migrate.sh after discovering the fix above - which actually made me realize that the migration didn't work at all - but obviously that's a different issue.

drahdiwaberl commented 10 months ago

i think (in my case) it's all related to the typesense container not running. logs below, both might contain multiple 'loops' of restarting:

recipesage_api_log.txt recipesage_typesense_log.txt

since the 'jemalloc' error sounds like hinting to a lack of resources: the (virtual) host i'm trying to run this on has 16GB of RAM - too little?

MattCorbiell commented 10 months ago

@drahdiwaberl from my understanding of it, your recipesage_api log is giving an ENOTFOUND error code for the hostname: typesense. So basically saying it is failing to resolve the typesense DNS name, which could be from a couple things. But is likely from the typesense container not starting from its own issue (as you mentioned).

As for the typesense error, it is giving a "resource temporarily unavailable" error message. This could mean insufficient memory, but, recipesage (in my experience) needs no where near 16GiB (which is what you said you provided your VM). So my guess is, it's one of the other potential system resources being the cause. Just to confirm the RAM theory, I quickly changed a VM of mine to have 8GiB of memory and loaded it up. I removed the previous instance of recipesage and ran: git clone https://github.com/julianpoy/RecipeSage-selfhost.git recipesage then ran: cd ./recipesage. Then, without changing any configurations, i ran: docker compose up -d. The containers came up with no errors, and after running ./migrate.sh I was able to go to the webUI and create an account. Interestingly the migrate.sh did not output a bunch of messages to the console. I guess that only happens when you make the edits that I made in my original post.

Therefore, I think a possibility which might be your problem is your VM ran out of disk space. run df -TH An output looking somewhat like this should show:

Filesystem                            Type     Size  Used Avail Use% Mounted on
tmpfs                                 tmpfs    831M  1.8M  829M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv     ext4     103G   70G   28G  72% /
tmpfs                                 tmpfs    4.2G     0  4.2G   0% /dev/shm
tmpfs                                 tmpfs    5.3M     0  5.3M   0% /run/lock
/dev/sda2                             ext4     2.1G  264M  1.7G  14% /boot
/dev/sda1                             vfat     1.2G  6.4M  1.2G   1% /boot/efi

What i would check first is the filesystem mounted at "/" (root). So in my case, I have a 103G allocated to the VM of which 70G are used and 28G is available. Is your available near 0? BTW, you can provide the output of df -TH in a nicely formatted way like my comment using triple ` symbols before and after the copy-pasted lines. like: ``` df -TH output ```

drahdiwaberl commented 10 months ago

thanks, but nope, nowhere near a full disk .. 7% of 500G used on / and alas the docker overlay-volumes..

Dateisystem       Typ      Größe Benutzt Verf. Verw% Eingehängt auf
/dev/ploop25065p1 ext4      537G     31G  479G    7% /
none              tmpfs     8,6G       0  8,6G    0% /sys/fs/cgroup
none              devtmpfs  8,6G       0  8,6G    0% /dev
tmpfs             tmpfs     8,6G       0  8,6G    0% /dev/shm
tmpfs             tmpfs     1,8G    2,1M  1,8G    1% /run
tmpfs             tmpfs     5,3M     21k  5,3M    1% /run/lock
none              tmpfs     8,6G       0  8,6G    0% /run/shm
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/1ffd3779978a85776cd0d10140f4afbecaa775e9eb84c754a2502c4948b99a8c/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/cd6e4f4906d47d1295844c511ee9b20f0d75450ed3ab9d757121a66fbbf2ad13/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/8cf5d0670ea7a80fd314892c8aad036147b095aabd3bf252bbd984dd8757dfb2/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/f09f6c37df4f8ac6b889f67a7c1790360aee2656c995f1b8fa315367cea67944/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/c7024eea91e56933a3596162593ef5e7b6cac230e06b0824262f6f6d889aff85/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/aa1371a7334c541582b5d1608ec8b19d78a6e602238bf6e6fb41dc8cabb05124/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/39e325a61f8062052a617305476ff3fee6cae8185fe75c1320358a466161f574/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/7ea7d404e9f17edd301f070ce7f58f658ba94f10a9eef31d7ec1f0ff3c9ae6d2/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/b787c64885acccd03f2f8a64783b4520cd1a7b29377de6b3a50e5d255fbefe83/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/1f0552882657847822bf7832afb8514b25f15b2f3e38f19cc07a8d53fa12eb40/merged
overlay           overlay   537G     31G  479G    7% /var/lib/docker/overlay2/7b1da387c46f517a69b680e06e0262683beb7f910e20c1490d24afcfd2dd7b39/merged

but i just happened to discover that it probably is something completely different: https://talk.plesk.com/threads/no-licence-after-starting-docker.358715/#post-894743

(because if i start the containers from within plesk i'm getting an error that it's license key is invalid.. and yes, machine is hosted at the named provider)

[fwiw, i just got it running by disabling all my other (5) containers and not starting 'browserless' which i assume is the least necessary ]

MattCorbiell commented 10 months ago

Well, at least you got a potential culprit. Unfortunately, this is definitely out of my realm of expertise now. I'm essentially only used to very basic setups on my own hardware. I hope you figure out your issue.

BTW, it would probably be worthwhile starting a new issue thread rather than using this thread, because it appears your issue is a separate one from the original poster. Future people would probably better track it down under its own post with a proper/related subject line.

julianpoy commented 9 months ago

Going to close this out, since this is largely oriented towards renaming containers and has gotten a little off-topic (nobody has done anything wrong here, just want to keep things clear and in their own issues so it's easier to track). It also seems like the original issue has been resolved.

If anyone needs anything further here, please open a fresh issue and I'm more than happy to support there!