Total Pageviews

Sunday 15 September 2024

教你如何判断前后车距离

当后面的车子的完整车头出现在后视镜内侧的2/3范围内,此时你离后车大约15米左右。

-当后面的车子的完整车头出现在后视镜的中央时,此时你离后车大约10米左右,这是安全距离了观察2次后视镜(间隔2-3秒),如果其车头大小维持不变,说明跟你的车子基本上同速,此时,稍微加速(轻踩油门,然后松开油门),方向盘转动0.5-1厘米即可安全变道。

Somewhere in Time

故鄉的原風景

 這首曲子是由日本的音樂者 宗次郎先生所做的.

 曲子本身是非常道地的中國曲風 .日本在藝術方面的表現讓我印象最深刻的就是禪風 ,而禪風對我來說是一種現代的寧靜的心靈境界, 與古代中國山水壯闊高遠飄渺很相似卻不那麼相同. 故鄉的原風景是讓我一聽到就讓我的思緒 像是帶著深深的思念 飄渺在高山峻嶺中的雲. 風. 霧..... 我只有兩個字 ~ 讚嘆 ~

Saturday 14 September 2024

omegacoin

 

Omega coin is a powerful mode-based PoW + PoS-based cryptocurrency.

Block Spacing: 80 Seconds Stake Minimum Age: 8 Hours

Port: 7777 RPC Port: 7778

git clone https://github.com/omegacoinnetwork/omegacoin

cd omegacoin

./autogen.sh

./configure

make

make install

strip omegacoind

sudo cp omegacoind /usr/local/bin

from  https://github.com/kwchmines/omegacoin

Advice on using SUDO


using sudo to become root

Here’s just a few articles from Unix Tutorial:

Use visudo to check sudo config syntax: you can and should be double-checking any changes made to /etc/sudoers and its include files, because they may be the only way for you to become a superuser.

sudo command – just the basics of using sudo

How to use visudo – a brief guide on the interactive use of visudo command

from https://web.archive.org/web/20231004200627/https://www.nuxified.org/article/advice-on-using-sudo/

How to Install Ubuntu Linux without a DVD or USB


USB memory sticks are replacing the DVD as the go to method of installing Linux, but what if you find yourself in that rare situation of having access to neither? There is a way, and even if you don’t particularly need it, it’s a great learning experience that could come in handy.

What you don’t need is a DVD or an USB drive. What you do need is an existing Windows installation and access to the internet, plus the following:

  1. A partitioning tool
  2. A couple of files for booting an Ubuntu installer
  3. Ext2Fsd
  4. EasyBCD

This is the process in a nutshell:

  1. Make the Linux partitions with the partitioning tool
  2. Make the Linux partition available in Windows with Ext2Fsd
  3. Download and copy the boot files to the /boot directory on the new Linux partition
  4. Install a bootloader that will boot with these files using EasyBCD
  5. Install Ubuntu

1. Making partitions

You can use any good partitioning tool for this, like Partition Magic or AOMEI Partition Assistant Home Edition. The key is to have some unused space on your hard drive where you can put the Linux partitions. If you don’t you can resize an existing partition to make space and then create a new partition in the newly unused space.

This isn’t the partitioning guide, but while you do need to be careful not to nuke the wrong thing with this the process is ultimately really simple. Both of the mentioned tools, for example, present things visually in a way that makes it hard to do something stupid like, say, erase your C:/ where your Windows is installed.

What you need to create are two partitions. One should be around 15GB to 20GB or more, of the ext4 type, and the other should be 512MB to 1024MB as a swap partition.

You should end up having something like this:

Linux partitions

The selected partition is the Linux partition, and the “Unformatted” one is used as swap. It doesn’t need to be formatted as Linux does that automatically. You just need to tell it what to use as swap.

Once you’ve got these partitions ready you can move on to the next step.

2. Make the Linux partition available in Windows

Windows can’t read Linux partitions on its own, as it doesn’t support the Ext3 or Ext4 partitions (nor most of the others). It doesn’t have the drivers for it. That’s where Ext2Fsd comes in. It’s the driver that allows Windows to read and write to Ext3 and Ext4 partitions.

Download it, install it, and you should have an Ext2 Volume Manager among your apps. Launch that, and if your new Ext3 partition isn’t visible in your Windows Explorer already you can double click on it in Ext2 Volume Manager and set a mountpoint for it. It should look something like this:

Ext Volume Manager

You may have to reboot after hitting Apply. And then you can proceed to copying some files on the newly available Linux partition.

3. Copy boot files

Go to the Ubuntu netboot archive, click on the desired Ubuntu version (like Ubuntu 14.10 (Utopic Unicorn) at the time of this writing), then your processor architecture (like amd64 or i386 depending on whether you’re on a 64bit or 32bit system), then the ubuntu-installer folder, and the amd64 or i386 in it. Finally you should be on a path like this: /ubuntu/dists/utopic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64

There you need to download two files: initrd.gz and linux. They’re quite small.

When you have these go to your new Linux partition, create a “boot” directory on it, and put those files there.

Now you’ve got a simple boot environment set up. What these two files contain are, in fact, the Ubuntu installer and the boot process for it!

4. Install a bootloader with EasyBCD

NeoSmart offers this super smart tool called EasyBCD that allows you to install bootloaders to boot just about anything. To download it go to the EasyBCD website, scroll down, and you should see the option to Register to download for free, or buy the program. The free version is for non-commercial use only.

EasyBCD

Once you’ve downloaded, installed, and launched EasyBCD you can see the existing bootloader settings. You just need to follow these simple steps to add a bootloader for our new Ubuntu install boot that we’ve set up in a previous step:

  1. Click “Add New Entry”, and switch to the “Linux/BSD” tab
  2. In the “Type” drop down select GRUB2. Set “Name” to whatever you want (“Ubuntu” or “Linux” would make sense). And just make sure the “Drive” drop down is set to “Automatically locate and load”.
  3. Click “Add Entry”, and then press the “BCD Deployment” button on the left.
  4. Make sure “Install the Windows Vista/7 bootloader” is selected, or Windows XP bootloader if you use that, and then click “Write MBR”.

That should give you a working bootloader with two options; the standard Windows option, and the new Linux boot option that should get you installing Ubuntu. It loads an AutoNeoGrub utility that scans your partitions for the Linux boot files like the ones we set up.

If for some reason it fails to find it you can go back to BCD and add a new NeoGrub entry where you can specify the exact location of your boot files.

Just go to Add New Entry as above, and then to the NeoGrub tab. There click the Install button, and then the Configure button to open the configuration file.

In the configuration file add these lines:

title Ubuntu
find --set-root /boot/linux
kernel /boot/linux ro root=/dev/sda5
initrd /boot/initrd.gz</code><code>title Ubuntu 2
root (hd0,4)
kernel /boot/linux
initrd /boot/initrd.gz

This will give you two options when you boot into NeoGrub, and one of them should work. Make sure to replace /dev/sda5 and (hd0,4) with the location of your Linux partition. You can check Ext2 Volume Manager mentioned before for the right number of your partition. In the (hd0,4) entry it counts from zero so if it is the Volume5 it should be (hd0,4), and if it is Volume4 it should be (hd0,3) while the /dev/sda5 entry corresponds to Volume5.

Chances are you wont need these manually added entries, and that the automatic AutoNeoGrub entry added before will find your boot files right away and boot them when you reboot.

5. Reboot into the Ubuntu installer

After rebooting you should see a choice between Windows, Linux, and NeoGrub if you’ve added the manual lines. Select “Linux” (or whatever you called it), and it should reboot into Ubuntu install.

6. Install Ubuntu

This is the stanard text graphics based installer that will ask you for your language, location, keyboard mapping, timezone, and install a base system. You can then choose to install extra software on top of it, like Ubuntu Desktop for a full Ubuntu installation.

The details of the install process is beyond the scope of this article. Just make sure that when you get to the partitioning step you choose “Manual” so you can select your Linux and swap partitions to install on instead of overwriting your entire hard drive!

Ubuntu will install its own GRUB bootloader during setup, and it will contain the Windows boot option as well so you should at this point have a dual boot setup on your PC between Windows and Ubuntu.

 from https://web.archive.org/web/20231209172537/https://www.nuxified.org/article/how-install-ubuntu-linux-without-dvd-or-usb/

how to see who hung up on iphone


If you have an iPhone, then you can easily check who hung up on you. This guide will help you understand how to view the call history of your iPhone to find out which contact hung up on you. With a few simple steps, you can quickly find out who called and then hung up on you.To see who hung up on an iPhone, open the Phone app and select the Recents tab. This tab shows all recent calls made to and from your device. Scroll through the list of calls to find the one that you believe was hung up on you. Tap on it for more details about the call, such as when it started and ended, as well as the duration of the call. If the “Call Ended” time is before you expected it to end, then that means that someone hung up on you during the call.

Understanding Caller ID on Your iPhone

The Caller ID on your iPhone allows you to know who is calling before you answer. It displays the name and number of the caller, so you can make an informed decision on whether or not you want to answer the call. To use Caller ID, you must first enable it in your settings.

To enable Caller ID, open the Settings app and tap Phone. Then tap Show My Caller ID and make sure it is turned on. You will then be able to view the caller’s name or number when they call you.

If a caller has blocked their caller ID from being displayed, then it will appear as “Unknown” or “Private Number” when they call. To prevent this from happening with your own calls, go back into the Phone settings and turn off Show My Caller ID. This will cause your calls to appear as “Unknown” or “Private Number” when someone else receives them.

You can also set up a whitelist of contacts whose calls will always display their name and number even if their caller ID is blocked. To do this, go back into Phone settings, tap Show My Caller ID, and then choose Whitelist Contacts from the list of options. Select any contacts that you want to be able to always see their caller information when they call and then save your changes.

With these easy steps, you can now easily understand who is calling you using your iPhone’s Caller ID feature!

Seeing Who Hung Up with Call Details

If you need to know who hung up the phone without speaking to them, you can use call details to find out. Call details are a record of each call that is made and received, including who called and who answered. It also includes the duration of the call and the time it was made or received. With this information, you can easily see who hung up without speaking.

Often times, when someone hangs up an incoming call without speaking, it is because they do not recognize the caller or are not interested in the conversation. Looking at their call details can help provide insight into why they hung up. For example, if a person receives multiple calls from the same number in a short amount of time, they may be more likely to hang up because they are not interested in what is being offered. Knowing this information can help you adjust your strategy moving forward.

Call details can also be used to see if someone has been avoiding your calls. If you notice that a person has consistently hung up after receiving your calls, it may be wise to change your approach. You can use this information as an opportunity to try something different in order to get through to them.

Overall, call details are an invaluable tool for seeing who hung up without speaking and why they chose to do so. By keeping track of these records and using them strategically, you can gain valuable insights into how people interact with your business or organization.

How to View Recently Missed Calls on iPhone

If you need to take a look at your recent missed calls on an iPhone, there are several ways to do so. The simplest way is to open your Recents tab in the Phone app, which will display all the phone numbers that have called you within the past 30 days. This list shows all incoming and outgoing calls, including those that you missed. You can also view a more detailed list of your recent call history by opening the Recent tab under Voicemail in your Phone app. This will show you all of your missed calls from the past few days. You can also view individual contacts’ recently missed call logs by going into their contact card and selecting “Calls” from the drop-down menu.

If you’re looking for even more detailed information about a particular call, such as when it happened or who initiated it, then you may need to use a third-party app like Call History Tracker or Call Log Pro. These apps allow you to view an even more detailed list of your recent call history and are useful for tracking business or personal calls. They also provide additional features such as displaying information about each call and allowing you to manage and export your call logs.

In summary, there are several ways to view recently missed calls on an iPhone. The simplest way is to go into your Recents tab in the Phone app, which will give you a basic list of all incoming and outgoing calls over the past 30 days. You can also go into individual contacts’ contact cards and select “Calls” from the drop-down menu for more detailed information about their recent calls with you. Finally, if you need even more detailed information about a particular call then consider using a third-party app like Call History Tracker or Call Log Pro for advanced features such as exporting and managing your call logs.

Troubleshooting Steps for Seeing Who Hung Up on iPhone

If you’re trying to figure out who hung up on you during a call on your iPhone, there are a few troubleshooting steps you can take. First, check your recent call log to see if the incoming call was saved. If it was saved, the caller’s name or number should be listed there. If not, then you’ll need to open your Recent Calls list and check for the incoming call. If you still don’t see the call in either of these places, then it’s likely that the caller hung up before the call was logged.

You can also try calling back the number that called you to see if it’s a valid phone number and who is associated with it. If you know the person who called you, then this may be an effective way to find out who hung up on you.

Finally, if none of these methods work and you still can’t figure out who hung up on you, contact your phone carrier and ask them for assistance. They should be able to look up information about incoming calls made to your phone and provide more insight into who called you and why they hung up so quickly.

Using Third-Party Apps to See Who Hung Up

Most people have experienced the frustration of not knowing who called or hung up on their phone. Fortunately, there are several third-party apps that can help you find out who hung up. These apps can be used to track anonymous calls and even trace the caller’s identity.

One of the most popular third-party apps is TrapCall. This app can be used to unmask blocked or unknown numbers, so you know exactly who called you. It also offers an enhanced caller ID feature that will tell you the name and location of a caller before you answer the phone. The app also has an auto-blocking feature that will block numbers from calling your phone again after they have been identified.

Another app that can be used to see who hung up is Truecaller. This app not only allows users to track anonymous calls, but it also allows them to identify callers by name, location, and even email address. It also has a caller ID feature that provides users with detailed information about the person calling them, including their name and address. Additionally, Truecaller features a “Do Not Disturb” mode that prevents unwanted calls from coming through.

Finally, there is Reverse Phone Lookup by Number Lookup. This app allows users to look up any number in the United States or Canada and see its originator’s contact information and other details about the person who made the call. The contact information provided includes their name, address, phone number(s), email address(es), social media profiles, and more.

Overall, these third-party apps are great tools for finding out who called or hung up on your phone. They provide users with detailed information about callers and help them protect their privacy by blocking unwanted calls from coming through again in the future.

Knowing When You’ve Been Blocked from Calling

It can be frustrating not knowing if you’ve been blocked from calling someone. But there are a few tell-tale signs that you can look out for if you think that your number has been blocked. Firstly, if your calls go straight to voicemail without ringing at all, it could be an indication that the call has been blocked. Additionally, if you’re able to leave a voicemail but never receive a response, it could also mean that your calls have been blocked.

If you’re using an iPhone to make the call and you have iMessage enabled, it’s worth checking to see if your messages are being delivered. If they’re being sent as texts instead of using iMessage, then it could mean that your number has been blocked from calling or texting. Similarly, if someone sends you a text message and it’s not delivered with the usual ‘Delivered’ message underneath the text bubble, then this could also indicate that your number has been blocked.

If all else fails and you still don’t know whether or not someone has blocked your number, then the best thing to do is ask them directly. They may be more open to talking about it than you think!

Viewing Calls Made from Your iPhone

If you have an iPhone, you can easily access your call history and view the calls you have made. To view calls made from your iPhone, open the phone app and tap on the Recents tab at the bottom of the screen. This will show a list of all incoming and outgoing calls that have been made from your phone. You can scroll through this list to see when each call was made and who it was to. If you have connected your contacts list to your phone, then their name will appear beside the number. To get more information about a call, just tap on it and you’ll be able to see how long it lasted for and any notes that were taken about that particular call.

You can also search through your call history using the search bar at the top of the screen. This allows you to quickly find a specific person or number that may have called you in the past. If you’re looking for a particular call, just type in their name or number and all related calls should appear in the list below. You can then view more details about each one if needed.

If you want to delete any of your calls from appearing on this list, then just swipe left on them and tap ‘Delete’ when prompted. This will stop them from appearing on this list but won’t actually delete them completely – they will still be stored in iCloud as part of your backup records.

Conclusion

So if you are an iPhone user who has been wondering how to see who hung up on you, now you know! There are many ways to do this. You can use the call log in the Phone app, the Recents tab in the FaceTime app, or third-party apps that offer more detailed analytics for incoming and outgoing calls. Whichever option you choose, it is always good to keep track of who called and when. Having this knowledge will help protect your privacy and give you peace of mind.

In conclusion, being able to see who hung up on an iPhone is not as difficult as it may seem. With a few simple steps, you can easily access the call log or third-party apps to view incoming and outgoing calls. The ability to monitor your incoming and outgoing calls can be very helpful in protecting your privacy and keeping yourself informed.

from https://mooflair.com/how-to-see-who-hung-up-on-iphone-4/

media.io,基于ai的在线音频/视频编辑工具

 https://www.media.io

MyYellowPad.com

 

www.MyYellowPad.com,

Access your notes anywhere.

Glance:自托管的个人仪表板

 A self-hosted dashboard that puts all your feeds in one place。

Glance

InstallConfigurationPreconfigured pagesThemesDiscord

example homepage

Features

Various widgets

  • RSS feeds
  • Subreddit posts
  • Weather
  • Bookmarks
  • Hacker News
  • Lobsters
  • Latest YouTube videos from specific channels
  • Clock
  • Calendar
  • Stocks
  • iframe
  • Twitch channels & top games
  • GitHub releases
  • Repository overview
  • Site monitor
  • Search box

Themeable

multiple color schemes example

Optimized for mobile devices

mobile device previews

Fast and lightweight

  • Minimal JS, no bloated frameworks
  • Very few dependencies
  • Single, easily distributed <15mb binary and just as small docker container
  • All requests are parallelized, uncached pages usually load within ~1s (depending on internet speed and number of widgets)

Configuration

Checkout the configuration docs to learn more. A preconfigured page is also available to get you started quickly.

Installation

Caution

The project is under active development, expect things to break every once in a while.

Manual

Checkout the releases page for available binaries. You can place the binary inside /opt/glance/ and have it start with your server via a systemd service. To specify a different path for the config file use the --config option:

/opt/glance/glance --config /etc/glance.yml

Docker

Important

Make sure you have a valid glance.yml file in the same directory before running the container.

docker run -d -p 8080:8080 \
  -v ./glance.yml:/app/glance.yml \
  -v /etc/timezone:/etc/timezone:ro \
  -v /etc/localtime:/etc/localtime:ro \
  glanceapp/glance

Or if you prefer docker compose:

services:
  glance:
    image: glanceapp/glance
    volumes:
      - ./glance.yml:/app/glance.yml
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 8080:8080
    restart: unless-stopped

Building from source

Requirements: Go >= v1.22

To build:

go build -o build/glance .

To run:

go run .

Building Docker image

Build the image:

Make sure to replace "owner" with your name or organization.

docker build -t owner/glance:latest .

Push the image to your registry:

docker push owner/glance:latest
from https://github.com/glanceapp/glance/ 

-------------------------------------

 几个月前了解到Glance这个项目,一直都想找个时间好好折腾一下,当时就觉得这个程序很符合我平时的上网习惯,基本可以把我平时上网要看的东西都能整合在一个页面里面。

然后我就按自己的习惯搓了个配置文件,最终效果:

话不多说,开始部署:

apt -y update
apt -y install curl wget nginx python3-certbot-nginx
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

准备目录新建compose文件:

mkdir -p /opt/glance && cd /opt/glance && nano docker-compose.yml

写入如下配置:

services:
  glance:
    image: glanceapp/glance
    restart: unless-stopped
    volumes:
      - ./glance.yml:/app/glance.yml
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 8081:8080

新建glance.yml配置文件:

nano glance.yml

我的配置如下:

theme:
  background-color: 225 14 15
  primary-color: 157 47 65
  contrast-multiplier: 1.1

pages:
  - name: Home
    columns:
      - size: small
        widgets:
          - type: clock
            hour-format: 24h
            timezones:
              - timezone: Etc/UTC
                label: MapleStory Game Time
              - timezone: Asia/Shanghai
                label: Shanghai
              - timezone: America/New_York
                label: New York

          - type: calendar

          - type: twitch-channels
            channels:
              - ereklo_game
              - niru
              - duky
              - scardor
              - isiinggunz
              - sacrix

          - type: twitch-top-games
            exclude:
              - just-chatting
              - pools-hot-tubs-and-beaches
              - music
              - art
              - asmr

      - size: full
        widgets:
          - type: search
            search-engine: google
            bangs:
              - title: YouTube
                shortcut: "!yt"
                url: https://www.youtube.com/results?search_query={QUERY}

          - type: monitor
            cache: 1m
            style: dynamic-columns-experimental
            title: Services
            sites:
              - title: Vaultwarden
                url: https://vaultwarden.example.com/
                icon: si:vaultwarden
              - title: ProxmoxVE
                url: https://pve.example.com:8006/
                icon: si:proxmox
                allow-insecure: true
              - title: WordPress
                url: https://mydomain.com
                icon: si:wordpress
              - title: Chevereto
                url: https://img.xxoo.zip/
                icon: si:coil

          - type: rss
            limit: 10
            collapse-after: 3
            cache: 3h
            style: detailed-list
            feeds:
              - url: https://mydomain.com/feed
                title: 荒岛

          - type: reddit
            subreddit: selfhosted
            style: horizontal-cards

          - type: reddit
            subreddit: China_irl
            style: horizontal-cards

          - type: videos
            channels:
              - UCBKDRq35-L8xev4O7ZqBeLg # wangzhian
              - UCiL5EGUQfROCmRokN2q1LCg # xumouren
              - UCIXOIjR2mp8tHz78DE0vj2A # xuxiaodong
              - UCcOCpJNG2hR0wohtBVdeshA # ms
            limit: 25
            collapse-after-rows: 2
            style: grid-cards

      - size: small
        widgets:
          - type: weather
            location: Wuhan, China

          - type: bookmarks
            groups:
              - links:
                  - title: Google
                    url: https://google.com/
                  - title: Github
                    url: https://github.com/
                  - title: Hostloc
                    url: https://hostloc.com/
                  - title: Nodeseek
                    url: https://www.nodeseek.com/
                  - title: Linuxdo
                    url: https://linux.do/
                  - title: V2ex
                    url: https://www.v2ex.com/
              - title: Entertainment
                color: 10 70 50
                links:
                  - title: Bilibli
                    url: https://www.bilibili.com/
                  - title: YouTube
                    url: https://www.youtube.com/
                  - title: Netflix
                    url: https://www.netflix.com/
                  - title: Disney+
                    url: https://www.disneyplus.com/
              - title: Social
                color: 200 50 50
                links:
                  - title: Reddit
                    url: https://www.reddit.com/
                  - title: Twitter
                    url: https://twitter.com/

          - type: releases
            repositories:
              - immich-app/immich
              - dani-garcia/vaultwarden
              - misskey-dev/misskey
              - SagerNet/sing-box
              - XTLS/Xray-core
              - stalwartlabs/mail-server
              - bitmagnet-io/bitmagnet
              - Paymenter/Paymenter
              - ConvoyPanel/panel

          - type: repository
            repository: stalwartlabs/mail-server
            pull-requests-limit: 5
            issues-limit: 3

简单介绍一下我这个配置:

1、时间这块我配置了一个UTC时间,因为我平时玩MapleStory,这个游戏里面的时间比北京时间晚8个小时,这样我就可以及时知道游戏内的活动到期时间、物品过期时间了,随时提醒我上线= =

2、关注了几个在Twitch玩MapleStory的游戏主播,我平时有事没事也会看看这几个人的直播,这样开播的时候我能第一时间看到。

玩GMS谁能不认识niru(全世界第一个300级的男人,睡着了都还在电脑前刷怪233)还有duky,这货也是搞笑,之前自己弄了个外挂出来可以卡已经被删除的轮回石碑效果,然后弄个小号在地图里面挂着,大号就在地图里面刷怪体验轮回效果,然后GM把他号BAN了还开直播装无辜= =

3、RSS这个没什么好说的,订阅自己喜欢的站点。这里只是演示,我就只订阅了我自己的这个博客。

4、Reddit我配置了selfhosted、china_irl,这是我平时最常逛的两个版块了。这里要注意的是,Reddit把很多机房(数据中心)的IP都拉黑了,如果你搭建Glance的机器无法访问Reddit就会有类似这样的报错:

我自己搭建的这台服务器就是IP被Reddit拉黑了,但是经过我的一番折腾已经完美解决了,步骤有点多,我会单独写一篇文章说明,这里先不说了。

5、Glance还支持关注Youtube的频道,我也是把自己常看的几个频道加进去了。配置的时候需要对应频道的ID,可以参考这里:https://github.com/glanceapp/glance/blob/main/docs/configuration.md#videos 获取。

6、天气这个也没什么好说的,只能说武汉这b天气真的可以热死人,太阳底下的车屁股温度可以达到80多度。。

7、书签功能,配置了几个我平时常看的网站。

8、关注了几个Github的存储库,可以把自己比较关注的项目配置上去,这样项目有任何更改,都能第一时间看到。卧槽,这功能简直绝了!

9、搜索功能,默认使用Google搜索,还支持使用短代码临时切换搜索,比如先输入!yt,然后再输入搜索词的话,那么就是在Youtube上搜索了。

10、服务可用性监控,可以把自建的服务配置上去,随时监测服务的健康状态。

更多配置,可以查看官方的文档:https://github.com/glanceapp/glance/blob/main/docs/configuration.md

总而言之就是Glance是一个高度可自定义的个人homepage。完全可以根据你的个人需求来自定义,达到一个百花齐放的效果。

启动:

docker compose up -d

配置NGINX反向代理:

nano /etc/nginx/sites-available/glacne

写入如下配置:

server {
    listen 80;
    listen [::]:80;
    server_name glance.example.com;

    location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto "https";
        client_max_body_size 0;
    }
}

启用站点:

ln -s /etc/nginx/sites-available/glance /etc/nginx/sites-enabled/glance

Friday 13 September 2024

类似于Slack/Discord的聊天程序Tailchat

 

Next generation noIM application in your own workspace, not only another Slack/Discord/Rocket.chat

tailchat.msgbyte.com/

Docker Publish Docker Image Version (tag latest semver) Docker Pulls CI Codemagic build status Desktop Build deploy nightly Tailchat Nightly

tailchat

简体中文

Next generation noIM application in your own workspace

Not only another Slack, Discord, Rocket.Chat....

If you are interested in the concept of noIM, welcome to read my blog:

Official Documentation: https://tailchat.msgbyte.com/

Nightly version Try it online: https://nightly.paw.msgbyte.com/

Nightly version is the automatic compile version, that means, every commit code will be automatically compiled. The reliability and stability of the data are not guaranteed, you can deploy with stable version with docker images or github release page

Motivation

At present, the existing IM applications only focus on chatting itself, and IM is naturally a multi-person collaboration method. In my opinion, it should be able to take on more responsibilities, and form its own unique way of forwarding external applications through IM workflow.

Therefore, I bring up the point of noIM, which means Not only IM. Instead, it designed a highly customized application platform for individuals/teams centered on IM, with third-party applications as enhanced functions, and a plugin system as the glue connection layer in the middle.

To this end, the functions were abstracted, and a lot of time was spent designing the underlying mechanism. An instant messaging application such as Tailchat was born for expansion from the beginning of the underlying design. Through Tailchat's plugin system, developers can easily use their favorite applications as part of Tailchat in a very natural way. Different from traditional integration methods such as Slack, the integration of Tailchat is more free, as if it is a native function.

Feature

  • Pay attention to privacy, only invited members can join the group
  • Prevent strangers, add friends only by nickname + a random string of numbers
  • Two-level group space, dividing different topics by panels
  • Highly customized group space, create original group space by grouping with dragging and dropping. At the same time, more plugins can be used to add more capabilities
  • It can be rigorous or fun. Through the combination of plugins, Tailchat can be created for different scenarios. It can be for individuals or for enterprises
  • The backend microservice structure is ready for large-scale deployment. Don't worry about what to do after the number of user growth

Learn more in our website

Performance and Expansion

Tailchat is a modern open source IM application which based on React + Typescript

Front-end microkernel architecture + backend microservice architecture, Tailchat is ready for clustering deployment.

The front end empowers the application through the plugin system, which is very simple and easy to expand for the secondary development of Tailchat.

NOTICE: Although the core functionality of Tailchat is currently in a stable stage, its exposed interface for third-party developers is still being improved. Generally speaking, it is backward compatible, but retains the possibility of Break Change

Visit the official website to learn more: https://tailchat.msgbyte.com/

Quick Deploy

Deploy on Sealos

Deploy on Sealos

Communication

If you are interested in Tailchat, welcome to join Tailchat's seed user exchange group, your feedback can help Tailchat grow better

Tailchat

Tailchat Nightly Group

Producthunt

Tailchat - The next-generation noIM Application in your own workspace | Product Hunt 

from https://github.com/msgbyte/tailchat

------

Manual Deployment

caution

The content of this chapter requires you to have a certain degree of understanding of nodejs, git, linux. When there are problems such as dependency problems, environmental problems, system problems, etc., you need to have the ability to solve and troubleshoot problems by yourself.

If you do not understand this, it is not recommended that you use the contents of this chapter for deployment. It is recommended to use a unified image for deployment.

Dependencies

  • git
  • nodejs v16.18.0 or above
  • pnpm v8.3.1 or above
  • mongodb
  • redis
  • minio

Download the source code

mkdir msgbyte && cd msgbyte

git clone https://github.com/msgbyte/tailchat.git

Switch to stable code

Because the cloned code is the latest code, it may be unstable for a short period of time, so if you want to switch to the stable code of each version, you can use the tag function of git

For example, if you wanna use v1.7.6, you can use the command:

git checkout v1.7.6

Compile the project

Tailchat is a front-end and back-end separated project. So we have to deal with the front-end code and the back-end code separately

Install dependencies

We assume you have installed nodejs v16.18.0+ or above. And installed pnpm v8.3.1 or above

cd tailchat
pnpm install

This command will take some time to install all the dependencies of Tailchat. When the installation is complete, the internal plug-in will automatically execute the compilation command.

Building the project

NODE_ENV=production pnpm build

This command will execute the commands for compiling the front-end and back-end management terminals in parallel. And move the front-end product to the server/dist/public directory of the server.

When the project is built, our product can run normally.

caution:

Please build in macos / linux environment as much as possible, window does not necessarily fully support shell commands.

Run the project

In order to ensure the horizontal expansion of the project, although the core code of Tailchat is written in the same project, it can be divided into multiple subdivided microservices when it is actually started. Selectively enable different services by passing in a combination of different environment variables.

Create an environment variable file in the server directory using the .env.example directory as an example:

cp server/.env.example server/dist/.env
vim .env

Modify the necessary environment variables to your own, such as MONGO_URL, REDIS_URL, MINIO_URL

then start the service

SERVICEDIR=services,plugins pnpm start:service

SERVICEDIR indicates the directory where the microservice is loaded.

from https://tailchat.msgbyte.com/docs/deployment/other-way/manual

 

聊天程序fiora


An interesting open source chat application. Developed with node.js, mongoDB, socket.io and react.

fiora.suisuijiang.com

Fiora is an interesting open source chat application. It is developed based on node.js, react and socket.io technologies

  • Richness: Fiora contains backend, frontend, Android and iOS apps
  • Cross Platform: Fiora is developed with node.js. Supports Windows / Linux / macOS systems
  • Open Source: Fiora follows the MIT open source license

Online Example: https://fiora.suisuijiang.com/
Documentation: https://yinxin630.github.io/fiora/

Features

  1. Register an account and log in, it can save your data for a long time
  2. Join an existing group or create your own group to communicate with everyone
  3. Chat privately with anyone and add them as friends
  4. Multiple message types, including text / emoticons / pictures / codes / files / commands, you can also search for emoticons
  5. Push notification when you receive a new message, you can customize the notification ringtone, and it can also read the message out
  6. Choose the theme you like, and you can set it as any wallpaper and theme color you like
  7. Set up an administrator to manage users

Install

Fiora provides two ways to install

Change Log

You can find the Fiora changelog on the website

from https://github.com/yinxin630/fiora

--------------------------------------------------

Install

Environmental Preparation#

To run Fiora, you need Node.js(recommend v14 LTS version), MongoDB and redis

Recommended to running on Linux or MacOS systems

How to run#

  1. Clone the project git clone https://github.com/yinxin630/fiora.git -b master
  2. Ensure you have install yarn before, if not please run npm install -g yarn
  3. Install project dependencies yarn install
  4. Build client yarn build:web
  5. Config JwtSecret echo "JwtSecret=<string>" > .env2. Change <string> to a secret text
  6. Start the server yarn start
  7. Open http://[ip]:[port](such as http://127.0.0.1:9200) in browser

Run in the background#

Using yarn start to run the server will stop running after disconnecting the ssh connection, it is recommended to use pm2 to run

# install pm2
npm install -g pm2
# use pm2 to run fiora
pm2 start yarn --name fiora -- start
# view pm2 apps status
pm2 ls
# view pm2 fiora logging
pm2 logs fiora

Run With Develop Mode#

  1. Start the server yarn dev:server
  2. Start the client yarn dev:web
  3. Open http://localhost:8080 in browser

Running on the docker#

First install docker https://docs.docker.com/install/

Run directly from the DockerHub image#

# Pull mongo
docker pull mongo
# Pull redis
docker pull redis
# Pull fiora
docker pull suisuijiang/fiora
# Create a virtual network
docker network create fiora-network
# Run mongodB
docker run --name fioradb -p 27017:27017 --network fiora-network mongo
# Run redis
docker run --name fioraredis -p 6379:6379 --network fiora-network redis
# Run fiora
docker run --name fiora -p 9200:9200 --network fiora-network -e Database=mongodb://fioradb:27017/fiora -e RedisHost=fioraredis suisuijiang/fiora

Local build image and run#

  1. Clone the project to the local git clone https://github.com/yinxin630/fiora.git -b master
  2. Build the image docker-compose build --no-cache --force-rm
  3. Run it docker-compose up

from https://yinxin630.github.io/fiora/docs/install/

Wednesday 11 September 2024

proxy-by-ztgreat, 基于netty的tcp代理工具,可以借助公网服务器,访问内网主机的tcp服务,类似花生壳.


这款 proxy 呢,可以通过公网服务器访问内网主机,目前仅支持tcp流量转发,是的,需要借助公网服务器,但是不需要把本机的服务部署在公网,这个还是会减少很多工作量的,而且大家也知道,云服务器的资源那是大大的宝贵,当然网上流行的内网穿透,不借助公网服务器,直接穿透内网,以LZ的网络知识,我只想说很难,而且这个在不同的网络环境下影响很大,极大可能性就是不稳定。

proxy 最开始的版本是通过端口转发的,但是这样就需要不同的服务绑定不同的端口,这无疑是一种资源浪费,同时需要开放公网服务器的端口,这样也不好,现在呢可以通过域名转发,同时也可以配合nginx来使用。

工作流程

proxy

上面呢就是proxy的工作模式,很多的代理软件模式都差不多是这样的,代理服务器和代理客户端呢通过私有的协议进行通信。

代理客户端先和代理服务器建立连接,代理服务器通过不同的域名(或端口)来区分具体的代理服务,用户通过访问代理服务器的指定域名(或端口),然后代理服务器将数据转发给代理客户端,客户端再转发数据给真实服务器,当客户端接收到真实服务器响应后,再传输给代理服务器,代理服务器再将数据传送给用户,完成一次请求。

example2

(1)通过外网访问本机的mysql

- serverport: 3307
              proxyType: tcp
              realhost: 127.0.0.1
              realhostport: 3306
              description: mysql 代理

配置服务端,将服务端程序运行在公网服务器,同时开放3307端口,本地运行客户端(需要简要配置),这样通过外网ip或者域名访问其3307端口,便是访问内网本机的3306端口了。

20180911152812

(2)ssh 服务

- serverport: 2222
              proxyType: tcp
              realhost: 172.16.254.63
              realhostport: 22
              description: ssh 代理

配置服务端,将服务端程序运行在公网服务器,同时开放2222端口,本地运行客户端(需要简要配置),这样通过外网ip或者域名访问其2222端口,便是访问**内网本机(172.16.254.63)**的22端口了。

TIM截图20180911153744

(3)域名转发

- domain:  proxy.ztgreat.cn
           proxyType: http
           realhost: 127.0.0.1
           realhostport: 8080
           description: http代理

访问proxy.ztgreat.cn 实际访问的便是本机的8080端口.

通过域名转发,是共享的同一个端口(非80),这样需要入口配合nginx来使用.

代理客户端先和代理服务器建立连接,代理服务器通过不同的端口来区分具体的代理服务,用户通过访问代理服务器的指定端口,然后代理服务器将数据转发给代理客户端,客户端再转发数据给真实服务器,当客户端接收到真实服务器响应后,再传输给代理服务器,代理服务器再将数据传送给用户,完成一次请求。

from https://github.com/ztgreat/proxy 

(https://github.com/ztgreat/proxy-cpp)

Lynis - Security auditing and hardening tool, for UNIX-based systems

 

Lynis - Security auditing tool for Linux, macOS, and UNIX-based systems. Assists with compliance testing (HIPAA/ISO27001/PCI DSS) and system hardening. Agentless, and installation optional.

cisofy.com/lynis/ 

  Documentation

Lynis is a security auditing tool for systems based on UNIX like Linux, macOS, BSD, and others. It performs an in-depth security scan and runs on the system itself. The primary goal is to test security defenses and provide tips for further system hardening. It will also scan for general system information, vulnerable software packages, and possible configuration issues. Lynis was commonly used by system administrators and auditors to assess the security defenses of their systems. Besides the "blue team," nowadays penetration testers also have Lynis in their toolkit.

We believe software should be simple, updated on a regular basis, and open. You should be able to trust, understand, and have the option to change the software. Many agree with us, as the software is being used by thousands every day to protect their systems.

Goals

The main goals are:

  • Automated security auditing
  • Compliance testing (e.g. ISO27001, PCI-DSS, HIPAA)
  • Vulnerability detection

The software (also) assists with:

  • Configuration and asset management
  • Software patch management
  • System hardening
  • Penetration testing (privilege escalation)
  • Intrusion detection

Audience

Typical users of the software:

  • System administrators
  • Auditors
  • Security officers
  • Penetration testers
  • Security professionals

Installation

There are multiple options available to install Lynis.

Software Package

For systems running Linux, BSD, and macOS, there is typically a package available. This is the preferred method of obtaining Lynis, as it is quick to install and easy to update. The Lynis project itself also provides packages in RPM or DEB format suitable for systems systems running: CentOS, Debian, Fedora, OEL, openSUSE, RHEL, Ubuntu, and others.

Some distributions may also have Lynis in their software repository: Repology

Note: Some distributions don't provide an up-to-date version. In that case it is better to use the CISOfy software repository, download the tarball from the website, or download the latest GitHub release.

Git

The very latest developments can be obtained via git.

  1. Clone or download the project files (no compilation nor installation is required) ;

     git clone https://github.com/CISOfy/lynis
    

Execute:

 cd lynis && ./lynis audit system

If you want to run the software as root (or sudo), we suggest changing the ownership of the files. Use chown -R 0:0 to recursively alter the owner and group and set it to user ID 0 (root). Otherwise Lynis will warn you about the file permissions. After all, you are executing files owned by a non-privileged user.

Enterprise Version

This software component is also part of an enterprise solution. Same quality, yet with more functionality.

Focus areas include compliance (PCI DSS, HIPAA, ISO27001, and others). The Enterprise version comes with:

  • a web interface;
  • dashboard and reporting;
  • hardening snippets;
  • improvement plan (based on risk);
  • commercial support.

Documentation

Full documentation: https://cisofy.com/documentation/lynis/.

Customization

If you want to create your own tests, have a look at the Lynis software development kit.

Security

We participate in the CII best practices badge program of the Linux Foundation.

Media and Awards

Lynis is collecting some awards along the way and we are proud of that.

from https://github.com/CISOfy/lynis