You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I fork Server and then created a docker image myself, right in github, and there is a docker compose sample file, but unfortunately after I configured the environment variables in the local CLI, after executing happy auth login --force, the phone scanned the code, and the phone already prompted that the authorization was successful. But the terminal keeps prompting to wait for authorization
I fork Server and then created a docker image myself, right in github, and there is a docker compose sample file, but unfortunately after I configured the environment variables in the local CLI, after executing happy auth login --force, the phone scanned the code, and the phone already prompted that the authorization was successful. But the terminal keeps prompting to wait for authorization
I used your version and it has been running successfully. I performed the following operations:
Local:
I fork Server and then created a docker image myself, right in github, and there is a docker compose sample file, but unfortunately after I configured the environment variables in the local CLI, after executing happy auth login --force, the phone scanned the code, and the phone already prompted that the authorization was successful. But the terminal keeps prompting to wait for authorization
I used your version and it has been running successfully. I performed the following operations: Local:
export HAPPY_SERVER_URL="https://your-domain"
export HAPPY_HOME_DIR="$HOME/.happy-selfhost"
On happy-server container npx prisma db push --schema=/app/node_modules/.prisma/client/schema.prisma
Are you experiencing any issues? Can the mobile phone scan the code for authorization?
I am having the same problem. I have followed the instructions to get the server working but when I happy auth login the mobile app says "Terminal connection successfully" but the CLI app says "Waiting for authentication..." and nothing happens.
And thank you so much for creating such amazing software, happy is an amazing addition to my workflow.
Security Note: Don't use the default minioadmin credentials for MinIO. Generate strong, unique credentials:
# Generate secure random credentials
openssl rand -base64 16 # for MINIO_ROOT_USER
openssl rand -base64 32 # for MINIO_ROOT_PASSWORD
Authentication Issue
The "mobile says connected but CLI waiting" problem is likely related to WebSocket/real-time communication. Make sure HAPPY_SERVER_URL is the publicly accessible URL that both your CLI and mobile client can reach.
Reacted by Max F. Findel, Maciej Wieczorek, SaneBow, Micha(el) Bladowski, Tony, Zhi Tao and wulabing
To everyone here who is confused about how to set everything up, the issue is most likely not your setup on the server but on the app itself. When I figured this out I kicked myself.
For me the problem was that I didnt know that you need to fully log out in the APP and then on the QR sign in screen there is a button on the top right that allows you to enter a custom server URL.
I am betting that all of your setups are probably perfect or close to it and you are missing this one crucial step.
Easy way to test this is to use the webapp. If it works then you missed this step and you are VERY close.
In the happy code (client side) 📍 Location: sources/sync/serverConfig.ts:7在 happy 代码(客户端)中 📍 位置:sources/sync/serverConfig.ts:7
const DEFAULT_SERVER_URL = 'https://api.cluster-fluster.com';
There is a hardcoded server address in the app, and no configuration option is provided. This should be the root cause.应用程序中硬编码了一个服务器地址,并且没有提供配置选项。这应该是根本原因。
This is incorrect, there is a button there before you log in on the top right! If you cant find it ask Claude, thats how I ended up finding it.这是不正确的,在您登录右上角之前有一个按钮!如果您找不到它,可以问 Claude,我就是这样找到它的。
Great, I succeeded. I set up the server on a public VPS, successfully connected and authenticated on my phone, and tested the functionality—everything works normally (aside from Happy's own bugs).
I had imagined that the URL setting would be somewhere in the settings, but I never thought I’d need to log out to see the relevant button, and it wasn’t very noticeable.
Now it’s working properly. The Docker Compose provided by @geekdada is usable, and I added a Caddy reverse proxy on top of my service, applied a certificate for the domain, and it also works fine.
However, the official documentation still needs to be updated. The actual required components differ significantly from the demo compose.yml provided by the official, with many essential components such as minio completely missing.
Activity
CherryLover commentedon Oct 16, 2025
I fork Server and then created a docker image myself, right in github, and there is a docker compose sample file, but unfortunately after I configured the environment variables in the local CLI, after executing happy auth login --force, the phone scanned the code, and the phone already prompted that the authorization was successful. But the terminal keeps prompting to wait for authorization
YeautyYE commentedon Oct 17, 2025
I used your version and it has been running successfully. I performed the following operations:
Local:
On happy-server container
npx prisma db push --schema=/app/node_modules/.prisma/client/schema.prismaCherryLover commentedon Oct 23, 2025
Are you experiencing any issues? Can the mobile phone scan the code for authorization?
cprepos commentedon Nov 24, 2025
I am having the same problem. I have followed the instructions to get the server working but when I
happy auth loginthe mobile app says "Terminal connection successfully" but the CLI app says "Waiting for authentication..." and nothing happens.And thank you so much for creating such amazing software, happy is an amazing addition to my workflow.
geekdada commentedon Dec 21, 2025
Hi everyone,
I've been looking at the Docker setup and wanted to share some observations that might help with the deployment and authentication issues.
About the docker-compose.yml
The compose file includes a dedicated
migrateservice that automatically runs:This should handle the database migration that @YeautyYE mentioned.
Sample docker-compose.yml
Here's a simplified version with all required services:
Environment Variables Needed
Create a
.envfile with:Authentication Issue
The "mobile says connected but CLI waiting" problem is likely related to WebSocket/real-time communication. Make sure
HAPPY_SERVER_URLis the publicly accessible URL that both your CLI and mobile client can reach.wulabing commentedon Jan 12, 2026
Encountered the same problem, the phone shows scan successful, but the CLI keeps waiting
wulabing commentedon Jan 12, 2026
In the happy code (client side)
📍 Location: sources/sync/serverConfig.ts:7
const DEFAULT_SERVER_URL = 'https://api.cluster-fluster.com';
There is a hardcoded server address in the app, and no configuration option is provided. This should be the root cause.
cprepos commentedon Jan 12, 2026
To everyone here who is confused about how to set everything up, the issue is most likely not your setup on the server but on the app itself. When I figured this out I kicked myself.
For me the problem was that I didnt know that you need to fully log out in the APP and then on the QR sign in screen there is a button on the top right that allows you to enter a custom server URL.
I am betting that all of your setups are probably perfect or close to it and you are missing this one crucial step.
Easy way to test this is to use the webapp. If it works then you missed this step and you are VERY close.
cprepos commentedon Jan 12, 2026
This is incorrect, there is a button there before you log in on the top right! If you cant find it ask Claude, thats how I ended up finding it.
wulabing commentedon Jan 13, 2026
Great, I succeeded. I set up the server on a public VPS, successfully connected and authenticated on my phone, and tested the functionality—everything works normally (aside from Happy's own bugs).
I had imagined that the URL setting would be somewhere in the settings, but I never thought I’d need to log out to see the relevant button, and it wasn’t very noticeable.
Now it’s working properly. The Docker Compose provided by @geekdada is usable, and I added a Caddy reverse proxy on top of my service, applied a certificate for the domain, and it also works fine.
Thank you all,
wulabing commentedon Jan 13, 2026
However, the official documentation still needs to be updated. The actual required components differ significantly from the demo compose.yml provided by the official, with many essential components such as minio completely missing.
docs: update self-hosting guide with Docker Compose and MinIO setup
ruphy commentedon Jan 21, 2026
thank you!!!
attaching a screenshot of where the icons is on the mobile client. if you don't see it, force a new log-out.